我在scrollView中使用listView,出于某些原因我无法将addHeader用于addFooter。
当我将适配器设置为listView时,我将其更改为高度,但它无法正常工作。
这是我的代码:
lv.setAdapter(ladap);
int totalHeight = 0;
for (int size = 0; size < ladap.getCount(); size++) {
View listItem = ladap.getView(size, null, lv);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = lv.getLayoutParams();
params.height = totalHeight + (lv.getDividerHeight() * (ladap.getCount() - 1));
lv.setLayoutParams(params);
lv.requestLayout();
结果如下:
如您所见,列表视图在页面中间完成,但仍然滚动很多。
如何正确使用?
答案 0 :(得分:2)
您不需要将ScrollView与ListView一起使用。如Android Dev docs中所述:
你永远不应该使用带有ListView的ScrollView,因为ListView负责自己的垂直滚动。最重要的是,这样做会使ListView中的所有重要优化都无法处理大型列表,因为它有效地强制ListView显示其整个项目列表以填充ScrollView提供的无限容器。