国产探花免费观看_亚洲丰满少妇自慰呻吟_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); 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蛟河市| 新田县| 丰宁| 朝阳区| 钟祥市| 瑞安市| 叙永县| 金昌市| 南京市| 北宁市| 时尚| 城步| 随州市| 和政县| 蓬安县| 旅游| 怀宁县| 彰化县| 云龙县| 玉山县| 杨浦区| 清水县| 嘉鱼县| 通江县| 长乐市| 福州市| 元氏县| 当涂县| 公安县| 慈溪市| 日土县| 松滋市| 信丰县| 阿鲁科尔沁旗| 丘北县| 武邑县| 安福县| 怀宁县| 昌黎县| 定西市| 南投县|