ScrollView中嵌套ListView

来源:互联网 发布:2016餐饮软件排行 编辑:程序博客网 时间:2024/05/18 01:09
适用于ScrollView 中布局类型:A+ListView布局文件 代码片段:
listView = (ListView) findViewById(R.id.listView1); adapterData = new ArrayList(); arrayAdapter= new ArrayAdapter(this, android.R.layout.simple_list_item_1, adapterData); listView.setAdapter(arrayAdapter); public void setListViewHeightBasedOnChildren(ListView listView) { // 获取ListView对应的Adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0, len = listAdapter.getCount(); i < len; i++) { // listAdapter.getCount()返回数据项的数目 View listItem = listAdapter.getView(i, null, listView); // 计算子项View 的宽高 listItem.measure(0, 0); // 统计所有子项的总高度 totalHeight += listItem.getMeasuredHeight(); } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); // listView.getDividerHeight()获取子项间分隔符占用的高度 // params.height最后得到整个ListView完整显示需要的高度 listView.setLayoutParams(params); } 核心 setListViewHeightBasedOnChildren(listView); 该部分代码必须要等listview的题目加载完之后调用,否则不能达到效果。

0 0