1. 程式人生 > >android學習筆記---ScrollView佈局中的顯示問題

android學習筆記---ScrollView佈局中的顯示問題

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);

 }

3)listview新增介面卡後或者介面卡載入資料後重新設定ListView高度

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