ScrollView 嵌套 ListView 时冲突,显示不全
调用
TableAdapter adapter = new TableAdapter(this, slist);
tableListView.setAdapter(adapter);
//解决ScrollView中listview显示数据不全的问题
fixListViewHeight(tableListView);
下面是重测量高度方法
private void fixListViewHeight(ListView listView)
{
int totalHeight = 0;
// 如果没有设置数据适配器,则 ListView 没有子项,返回
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null)
return;
for (int index = 0,len = listAdapter.getCount(); index < len; index++ )
{
View listViewItem = listAdapter.getView(index,null,listView);
// 计算子项 View 的宽高
listViewItem.measure(0, 0);
// 计算所有子项的高度和
totalHeight += listViewItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
//listView.getDividerHeight () 获取子项间分隔符的高度
//params.height 设置 ListView 完全显示需要的高度
params.height = totalHeight + (listView.getDividerHeight()*(listAdapter.getCount()-1));
listView.setLayoutParams(params);
}