Android4.x中ScrollView巢狀ListView,ListView不能完全顯示總結、解決辦法
當ScrollView巢狀ListView時,使用listview設定setAdpter後,需要重新設定listview控制元件的寬高。在網上嘗試了一些方法,重新設定高度之後,仍然不能完全顯示,經過除錯,使用下面的方法,可以使ListView完全顯示。在setAdapter後,使用UtilityHelper .setListViewHeightBasedOnChildren(listview)呼叫。
public class UtilityHelper {
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}
int singleHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
singleHeight = listItem.getLayoutParams().height;
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = singleHeight *listAdapter.getCount();
listView.setLayoutParams(params);
}
}