在ScrollView中嵌套ListView

来源:互联网 发布:linux的dd命令SD卡 编辑:程序博客网 时间:2024/06/05 19:12

只要在设置ListView的Adapter后调用此静态方法即可让ListView正确的显示在其父ListView的ListItem中。但是要注意的是,子ListView的每个Item必须是LinearLayout,不能是其他的,因为其他的Layout(如RelativeLayout)没有重写onMeasure(),所以会在onMeasure()时抛出异常。

    public class Utility {        public static void setListViewHeightBasedOnChildren(ListView listView) {            ListAdapter listAdapter = listView.getAdapter();             if (listAdapter == null) {                // pre-condition                return;            }            int totalHeight = 0;            for (int i = 0; i < listAdapter.getCount(); i++) {                View listItem = listAdapter.getView(i, null, listView);                listItem.measure(0, 0);                totalHeight += listItem.getMeasuredHeight();            }            ViewGroup.LayoutParams params = listView.getLayoutParams();            params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));            listView.setLayoutParams(params);        }    }
原文地址

0 0
原创粉丝点击