在做一个Android程序时,需要在一个屏幕上显示两个不同的listview,开始用< linearlayout>包裹这两个listview在<ScrollView >设置时,
出现了不能同时联动的问题。
其中一个listview是我需要把数据绑定到这张图片上,如图:
绑定内容请忽略!!!
后来才知道需要设定每个listview的高度,并且绑定到View中, 才能实现同时联动。
1 public void SetListViewHeight(ListView listView) { 2 ListAdapter List_Adapter = listView.getAdapter(); 3 if (List_Adapter == null) { 4 return; 5 } 6 int ALLHeight = 0; 7 for (int i = 0; i < List_Adapter.getCount(); i++) { 8 View listItem = List_Adapter.getView(i, null, listView); 9 listItem.measure(0, 0); // 在还没有构建View 之前无法取得View的度宽。在此之前我们必须选 measure 一下. 10 ALLHeight += listItem.getMeasuredHeight(); 11 } 12 ViewGroup.LayoutParams params = listView.getLayoutParams(); 13 params.height = ALLHeight + (listView.getDividerHeight() * (List_Adapter.getCount() - 1)); // listView.getDividerHeight()获取子项间分隔符占用的高度 14 15 // params.height得到整个ListView完整显示需要的高度 16 listView.setLayoutParams(params); 17 }
在需要绑定的listview后面调用一下 “SetListViewHeight(ListView listView)”函数,就能实现两个或多个不同的listview同时联动。