美文网首页
解决 ScrollView 和 ListView 的嵌套使用只显

解决 ScrollView 和 ListView 的嵌套使用只显

作者: Obadiah | 来源:发表于2016-12-30 11:54 被阅读0次
public static void setListViewHeightBasedOnChildren(ListView listView) {

 if(listView == null) return;

 ListAdapter listAdapter = listView.getAdapter();

 if (listAdapter == null) {

 // pre-condition

 return;

 }

 int totalHeight = 0;

 for (int i = 0; i < listAdapter.getCount(); i++) {

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

 listItem.measure(0, 0);

 totalHeight += listItem.getMeasuredHeight();

 }

 ViewGroup.LayoutParams params = listView.getLayoutParams();

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

 listView.setLayoutParams(params);

}

Adapter中 getView () 方法返回的 View 的必须由 LinearLayout 组成。
需要手动把 ScrollView 滚动至最顶端,因为使用这个方法的话,默认在ScrollView顶端的项是ListView。

相关文章

网友评论

      本文标题:解决 ScrollView 和 ListView 的嵌套使用只显

      本文链接:https://www.haomeiwen.com/subject/xcdmvttx.html