android 垂直两级ListView联动解决
思路:将一个ListView设置位另一个ListView的Footer或者Header。我使用的是作为Footer。但是在实践过程中出现问题,就是作为Footer的ListView只显示一项。
后来弄了一下午都不行,然后终于在网上找到了方法。就是动态设置作为Footer的ListView的高度。
在设置adapter之后,调用如下方法动态设置ListView的高度。
/**
* 动态设置listview的高度
* @param listView
*/
public void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter adapter = listView.getAdapter();
if(adapter != null) {
int totalHeight = ;
for(int i=; i<adapter.getCount(); i++) {
View listItem = adapter.getView(i, null, listView);
listItem.measure(, );
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (adapter.getCount() - ));
((MarginLayoutParams) params).setMargins(, , , );
listView.setLayoutParams(params);
System.out.println(params.height + "===" + adapter.getCount());
}
}
这是第一篇博客,以后要养成写博客的习惯了!