国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

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

2020-04-11 12:21:48
字體:
來源:轉載
供稿:網友

首先,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每個Item的方法:

復制代碼 代碼如下:

public void setListViewHeightBasedOnChildren(ListView listView) {

  // 獲取ListView對應的Adapter

  ListAdapter listAdapter = listView.getAdapter();

  if (listAdapter == null) {

   return;

  }

  int totalHeight = 0;

  for (int i = 0; i < listAdapter.getCount(); i++) { // listAdapter.getCount()返回數據項的數目

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

   listItem.measure(0, 0); // 計算子項View 的寬高

   totalHeight += listItem.getMeasuredHeight(); // 統計所有子項的總高度

  }

  ViewGroup.LayoutParams params = listView.getLayoutParams();

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

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

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

  listView.setLayoutParams(params);

 }

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

復制代碼 代碼如下:

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 渝中区| 富蕴县| 枝江市| 波密县| 五台县| 广饶县| 搜索| 冕宁县| 吉隆县| 石首市| 瑞丽市| 广东省| 北宁市| 攀枝花市| 荔浦县| 绥滨县| 黄平县| 沧源| 望都县| 潞西市| 兴义市| 裕民县| 秦安县| 泾川县| 兴山县| 偏关县| 府谷县| 牟定县| 达州市| 平果县| 海盐县| 宁阳县| 彰武县| 合江县| 新绛县| 江阴市| 惠安县| 镇赉县| 望都县| 凤山县| 惠州市|