Android ScrollView里嵌套Listview,造成Listview的Item显示1行问题的最正确的解决方法

来源:互联网 发布:水牛 黄牛 知乎 编辑:程序博客网 时间:2024/06/05 04:28

1、该方法是在之前的基础上加入了更为精确的计算,加入了pandding的计算。

2、静态方法如下

/** * 重新计算listView的高度. *  */public static void setListViewHeightBasedOnChildren(ListView listView) {ListAdapter listAdapter = listView.getAdapter();if (listAdapter == null) {return;}int totalHeight = 0;for (int i = 0; i < listAdapter.getCount(); i++) {View listItem = listAdapter.getView(i, null, listView);            if (listItem != null) {                listItem.measure(0, 0);            }            totalHeight += (listItem.getMeasuredHeight());}ViewGroup.LayoutParams params = listView.getLayoutParams();        if (params != null) {            params.height = totalHeight+listView.getPaddingTop()+listView.getPaddingBottom()+listView.getDividerHeight() * (listAdapter.getCount() - 1);        }        ((MarginLayoutParams) params).setMargins(0, 0, 0, 0);listView.setLayoutParams(params);}

3、注意要在setAdapter方法后面调用用。


Android开发交流群 QQ群号223919243 (未满)





0 0
原创粉丝点击