[Android開發(fā)]RecyclerView的"wrap_content" 無效問題

今天發(fā)現(xiàn)給RecyclerView設(shè)置height為"wrap_content"并沒有生效腊尚,發(fā)現(xiàn)是官方的bug喜每。
雖然在23的包上進(jìn)行了修復(fù)间护。但在之前的版本都有這個(gè)問題企蹭。網(wǎng)上的方法一是在初始化時(shí)數(shù)組越界的崩潰白筹,二是只顯示第一行。
現(xiàn)在修改了一下谅摄,對(duì)每一行都進(jìn)行測(cè)量徒河,再把結(jié)果匯總再setMeasuredDimension。這樣才能完全的顯示所有行數(shù)送漠。

public class WrapLinearLayoutManager extends LinearLayoutManager {

    public WrapLinearLayoutManager(Context context) {
        super(context);
    }

    public WrapLinearLayoutManager(Context context, int orientation, boolean reverseLayout) {
        super(context, orientation, reverseLayout);
    }

    @Override
    public void onMeasure(RecyclerView.Recycler recycler, RecyclerView.State state, int widthSpec, int heightSpec) {
        int itemCount = state.getItemCount();
        if(itemCount == 0) {
            super.onMeasure(recycler, state, widthSpec, heightSpec);
            return ;
        }
        int holdMeasuredHeight = 0;
        int holdMeasuredWidth = 0;
        if(VERTICAL == getOrientation()){
            for(int i = itemCount-1; i>=0;i--){
                View view = recycler.getViewForPosition(i);
                if(view != null){
                    measureChild(view, widthSpec, heightSpec);
                    holdMeasuredHeight += view.getMeasuredHeight();

                }
            }
            holdMeasuredWidth = View.MeasureSpec.getSize(widthSpec);
        }else {
            int maxHeight=0;
            for(int i = itemCount-1; i>=0;i--){
                View view = recycler.getViewForPosition(i);
                if(view != null){
                    measureChild(view, widthSpec, heightSpec);
                    holdMeasuredWidth += view.getMeasuredWidth();
                    if(maxHeight<view.getMeasuredHeight())maxHeight=view.getMeasuredHeight();
                }
            }
            if(holdMeasuredWidth > View.MeasureSpec.getSize(widthSpec)){
                holdMeasuredWidth = View.MeasureSpec.getSize(widthSpec);
            }
            holdMeasuredHeight = View.MeasureSpec.getSize(heightSpec);
            if(maxHeight !=0 && maxHeight < holdMeasuredHeight){
                holdMeasuredHeight = maxHeight;
            }
        }
        setMeasuredDimension(holdMeasuredWidth, holdMeasuredHeight);
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末顽照,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子闽寡,更是在濱河造成了極大的恐慌代兵,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爷狈,死亡現(xiàn)場(chǎng)離奇詭異植影,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)淆院,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門何乎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來句惯,“玉大人,你說我怎么就攤上這事支救∏酪埃” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵各墨,是天一觀的道長(zhǎng)指孤。 經(jīng)常有香客問我,道長(zhǎng)贬堵,這世上最難降的妖魔是什么恃轩? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮黎做,結(jié)果婚禮上叉跛,老公的妹妹穿的比我還像新娘。我一直安慰自己蒸殿,他們只是感情好筷厘,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宏所,像睡著了一般酥艳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上爬骤,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天充石,我揣著相機(jī)與錄音,去河邊找鬼霞玄。 笑死骤铃,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的溃列。 我是一名探鬼主播劲厌,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼听隐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起哄啄,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤雅任,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后咨跌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沪么,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年锌半,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了禽车。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖殉摔,靈堂內(nèi)的尸體忽然破棺而出州胳,到底是詐尸還是另有隱情,我是刑警寧澤逸月,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布栓撞,位于F島的核電站,受9級(jí)特大地震影響碗硬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一课蔬、第九天 我趴在偏房一處隱蔽的房頂上張望悲伶。 院中可真熱鬧,春花似錦翰意、人聲如沸木人。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽虎囚。三九已至,卻和暖如春蔫磨,著一層夾襖步出監(jiān)牢的瞬間淘讥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來泰國打工堤如, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蒲列,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓搀罢,卻偏偏與公主長(zhǎng)得像蝗岖,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子榔至,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容