多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > ListView嵌套ScrollView后,設置dividerHeight屬性后高度計算

ListView嵌套ScrollView后,設置dividerHeight屬性后高度計算

來源:程序員人生   發布時間:2014-12-13 08:46:02 閱讀次數:5837次

當我們需要在listView外層嵌套ScrollView,這樣兩個scroll轉動效果會產生相互影響,為了不這個,我們通常是制止listView轉動,

把ListView總高度計算出來,完全顯示。


計算listView的總高度只需要自定義1個mylistView繼承listView,重寫onMeasure(...)方法就弄定了。

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

但是當listView設置了dividerHeight屬性以后上面的方法就失效了,由于上面的方法 沒有加上每一個Item之間的間隔dividerHeight。


我們怎樣辦呢,通過在網上的搜索,發現有其他網友分享,可以先加載出listView的數據,然后通過for循環計算每一個item的高度,再加和

得到我們想要的listView的總高度。

代碼以下:

public static void setListViewHeightBasedOnChildren(ListView listView) { //獲得ListView對應的Adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { // pre-condition return; } int totalHeight = 0; for (int i = 0, len = listAdapter.getCount(); i < len; i++) { //listAdapter.getCount()返回數據項的數目 View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); //計算子項View 的寬高 totalHeight += listItem.getMeasuredHeight()+listView.getDividerHeight()/2; //統計所有子項+dividerheight的總高度 } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); //listView.getDividerHeight()獲得子項間分隔符占用的高度 //params.height最后得到全部ListView完全顯示需要的高度 listView.setLayoutParams(params); }

注意:1、setListViewHeiBasedOnChildren(listView),在數據添加上后使用

if (addressResult != null && addressResult.size() >= 0) { addressadapter = new AddressItemAdapter(getApplicationContext(), addressResult); addressadapter.addressListener(AddressActivity.this); addressListView.setAdapter(addressadapter);   setListViewHeightBasedOnChildren(addressListView); }
       

         2、ListView的Item的根目錄必須是LinearLayout

             3、記得addressadapter.notifyDataSetChanged();刷新adapter更新以后要調用

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 澳门成人免费永久视频 | 国产日韩欧美一区二区三区综合 | 欧美在线网站 | 成 人免费视频l免费观看 | 亚洲高清在线观看播放 | 91欧美精品综合在线观看 | 亚洲国产欧美在线 | 第一页亚洲 | 视频在线观看h | 成人在色线视频在线观看免费大全 | 国产肥妇 | 日韩久久一区二区三区 | 最近最新中文字幕大全免费10 | 欧美天天视频 | 国产成人性色视频 | 国产成人免费在线视频 | 亚洲产国偷v产偷v自拍涩爱 | 亚洲a网站| 欧美日韩精品国产一区二区 | 免费毛片网站 | 欧美日本性 | 波多野结衣中文字幕2022免费 | 国产深夜福利在线观看网站 | 亚洲精品嫩草研究院久久 | 中出丰满大乳中文字幕 | 日本a一级片| 精品久久久久久中文字幕专区 | 亚洲欧美日韩高清一区二区一 | 午夜dj影院在线观看免费视频中文 | 日韩亚洲欧美综合 | 久久久免费的精品 | 高清完整视频在线播放 | 日韩精品成人a在线观看 | 欧美另类xxxx | 欧美日韩天堂 | 亚洲精品美女视频 | 欧美一区二区三区视频在线观看 | 亚洲精品国产v片在线观看 亚洲精品国产啊女成拍色拍 | 国产成人免费视频精品一区二区 | 久久精品久久精品国产大片 | 2022在线精品视频网站 |