ListView之所以上下可以滚动,是因为里面所有信息的高度和大于ListView的高度。所以,要想实现不滚动,只需要设置ListView的高度适应所有Item的高度和就行了。
下面是实现方法
public void setListViewHeightBasedOnChildren(ListView listView) {
android.widget.ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
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());
listView.setLayoutParams(params);
listview.setScrollbarFadingEnabled(false);
listview.setVerticalScrollBarEnabled(false);
}