最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ScrollView與ListView合用(正確計(jì)算Listview的高度)的問題解決

 更新時(shí)間:2013年05月22日 15:14:13   作者:  
最近做項(xiàng)目中用到ScrollView和ListView一起使用的問題,顯示的時(shí)候ListView不能完全正確的顯示,查了好多資料終于成功解決:

首先,ListView不能直接用,要自定義一個(gè),然后重寫onMeasure()方法:

復(fù)制代碼 代碼如下:

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

第二步:寫個(gè)計(jì)算listView每個(gè)Item的方法:

復(fù)制代碼 代碼如下:

public void setListViewHeightBasedOnChildren(ListView listView) {

  // 獲取ListView對(duì)應(yīng)的Adapter

  ListAdapter listAdapter = listView.getAdapter();

  if (listAdapter == null) {

   return;

  }

  int totalHeight = 0;

  for (int i = 0; i < listAdapter.getCount(); i++) { // listAdapter.getCount()返回?cái)?shù)據(jù)項(xiàng)的數(shù)目

   View listItem = listAdapter.getView(i, null, listView);

   listItem.measure(0, 0); // 計(jì)算子項(xiàng)View 的寬高

   totalHeight += listItem.getMeasuredHeight(); // 統(tǒng)計(jì)所有子項(xiàng)的總高度

  }

  ViewGroup.LayoutParams params = listView.getLayoutParams();

  params.height = totalHeight
    + (listView.getDividerHeight() * (listAdapter.getCount() - 1));

  // listView.getDividerHeight()獲取子項(xiàng)間分隔符占用的高度

  // params.height最后得到整個(gè)ListView完整顯示需要的高度

  listView.setLayoutParams(params);

 }

第三步:listview添加適配器后設(shè)置高度即可:

復(fù)制代碼 代碼如下:

listView.setAdapter(adapter); 
new ListViewUtil().setListViewHeightBasedOnChildren(listView); 

相關(guān)文章

最新評(píng)論

孙吴县| 海盐县| 砚山县| 仁布县| 扶风县| 北海市| 裕民县| 阿鲁科尔沁旗| 信丰县| 磐安县| 建湖县| 信阳市| 施秉县| 南投县| 淮安市| 交口县| 平顺县| 呼图壁县| 平遥县| 锦州市| 故城县| 盐池县| 彭山县| 甘孜| 古浪县| 腾冲县| 剑川县| 都昌县| 界首市| 宁国市| 金塔县| 内黄县| 崇明县| 黑水县| 和龙市| 海原县| 林口县| 手机| 全南县| 姚安县| 临颍县|