ScrollView嵌套listview,listview顯示不全诅妹。

原因:在scrollView中ListView在OnMeasure階段無法測出實際的高度罚勾,我們需要給他設置AT_MOST模式以支持很大的高度毅人。這時候可以自定義一個MyListView 繼承自Listview,然后重寫onMeasure方法即可:

@Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
         super.onMeasure(widthMeasureSpec
                 ,MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST));
    }

從上邊我們可以看出尖殃,我們沒有改變widthMeasureSpec丈莺,僅僅是調用了makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST)方法,該方法會返回一個帶有模式和大小信息的int值的送丰,第一個參數Integer.MAX_VALUE >> 2缔俄,我們知道我們的控件的大小的最大值是用30位表示的(int占32位,其中前兩位用來表示文章開頭所說的三種模式)器躏。那么Integer.MAX_VALUE來獲取int值的最大值俐载,然后右移2位,就得到這個最大值了 登失。因為是要最大值所以只能選擇AT_MOST模式遏佣。最后 super.onMeasure()方法將我們的高度值傳進去就可以使ListView內容都展示出來了。

public static void setListViewHeightBasedOnChildren(ListView listView) {
        ListAdapter listAdapter = listView.getAdapter();
        if (listAdapter == null) {
            return;
        }
        int totalHeight = 0;
        int widthSpec = View.MeasureSpec.makeMeasureSpec(listView.getMeasuredWidth(), View.MeasureSpec.AT_MOST);
        for (int i = 0; i < listAdapter.getCount(); i++) {
            View listItem = listAdapter.getView(i, null, listView);
            listItem.measure(widthSpec, 0);
            totalHeight += listItem.getMeasuredHeight();
        }
        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
        listView.setLayoutParams(params);
    }
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末揽浙,一起剝皮案震驚了整個濱河市贼急,隨后出現的幾起案子,更是在濱河造成了極大的恐慌捏萍,老刑警劉巖太抓,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異令杈,居然都是意外死亡走敌,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門逗噩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掉丽,“玉大人,你說我怎么就攤上這事异雁〈氛希” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵纲刀,是天一觀的道長项炼。 經常有香客問我,道長示绊,這世上最難降的妖魔是什么锭部? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮面褐,結果婚禮上拌禾,老公的妹妹穿的比我還像新娘。我一直安慰自己展哭,他們只是感情好湃窍,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布闻蛀。 她就那樣靜靜地躺著,像睡著了一般您市。 火紅的嫁衣襯著肌膚如雪循榆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天墨坚,我揣著相機與錄音秧饮,去河邊找鬼。 笑死泽篮,一個胖子當著我的面吹牛盗尸,可吹牛的內容都是我干的。 我是一名探鬼主播帽撑,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼泼各,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了亏拉?” 一聲冷哼從身側響起扣蜻,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎及塘,沒想到半個月后莽使,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡笙僚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年芳肌,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肋层。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡亿笤,死狀恐怖,靈堂內的尸體忽然破棺而出栋猖,到底是詐尸還是另有隱情净薛,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布蒲拉,位于F島的核電站肃拜,受9級特大地震影響,放射性物質發(fā)生泄漏全陨。R本人自食惡果不足惜爆班,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望辱姨。 院中可真熱鬧,春花似錦戚嗅、人聲如沸雨涛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽替久。三九已至凉泄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蚯根,已是汗流浹背后众。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留颅拦,地道東北人蒂誉。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像距帅,于是被迫代替她去往敵國和親右锨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內容

  • 雷雁雄4月24日總結:今天繼續(xù)守店碌秸,人生就這樣绍移,看似簡單的事,只要心做都有不簡單的地方讥电,做任何事都要用心蹂窖。
    雷雁雄閱讀 137評論 0 0
  • 關于“公交車讓座”的話題,引發(fā)了我的思考恩敌。以后有了孩子恼策,要告訴他:關于“公交車讓座”的話題,引發(fā)了我的思考潮剪。以后有...
    可愛之夢閱讀 141評論 0 0