我不得不在scrollView中使用listView,由于某些原因,我不能在addFooter中使用addHeader。
当我将适配器设置为我的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();这就是结果:

正如您所看到的,listview在页面的中间已经完成,但它仍然会滚动很多。
如何让它变得正确?
发布于 2015-07-21 22:50:16
您不需要在ListView中使用ScrollView。如Android Dev docs中所述:
您不应该将ScrollView与ListView一起使用,因为ListView会处理它自己的垂直滚动。最重要的是,这样做会破坏ListView中处理大型列表的所有重要优化,因为它有效地强制ListView显示它的整个项目列表,以填满ScrollView提供的无限容器。
https://stackoverflow.com/questions/31542200
复制相似问题