欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ScrollView嵌套ListView及ListView嵌套的高度計(jì)算方法

 更新時(shí)間:2018年01月04日 14:18:04   作者:dreamGong  
下面小編就為大家分享一篇ScrollView嵌套ListView及ListView嵌套的高度計(jì)算方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

引言

在Android開發(fā)中,我們有時(shí)會(huì)需要使用ScrollView中嵌套ListView的需求。例如:在展示信息的ListView上還有一部分信息展示區(qū)域,并且要求這部分信息展示區(qū)域在ListView信息比較多的時(shí)候也是可以滑動(dòng)的,而不是固定不變的。這時(shí),我們一般會(huì)將ScrollView和ListView嵌套在一起使用。但是這會(huì)導(dǎo)致ListView展示不全,然后也會(huì)有滑動(dòng)沖突問題。下面我們來看看怎么解決。

解決方案

主動(dòng)計(jì)算和設(shè)置ListView的高度,這樣就可以合理的展示ListView的高度。代碼如下:

public void setListViewHeightBasedOnChildren(ListView listView) {
  // 獲取ListView對(duì)應(yīng)的Adapter
  ListAdapter listAdapter = listView.getAdapter();
  if (listAdapter == null) {
   return;
  }
  int totalHeight = 0;
  // listAdapter.getCount()返回?cái)?shù)據(jù)項(xiàng)的數(shù)目
  for (int i = 0; i < listAdapter.getCount(); i++) {
   View listItem = listAdapter.getView(i, null, listView);
   // 計(jì)算子項(xiàng)View 的寬高
   listItem.measure(0, 0);
   // 統(tǒng)計(jì)所有子項(xiàng)的總高度
   totalHeight += listItem.getMeasuredHeight();
  }
  ViewGroup.LayoutParams params = listView.getLayoutParams();
  params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
  // listView.getDividerHeight()獲取子項(xiàng)間分隔符占用的高度
  // params.height最后得到整個(gè)ListView完整顯示需要的高度
  listView.setLayoutParams(params);
 }

以上這篇ScrollView嵌套ListView及ListView嵌套的高度計(jì)算方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論