解决ListView中嵌套ListVew显示不完全的问题


ListView中嵌套ListView, ListView以主ListView的Item的形式出现,只显示部分,需要滑动才能浏览。


解决方法一:

int size = list.size();   //获取数据源的size,即item的个数
listView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,size*150*1.5));


150是一个item的高度,这里是固定死了,为什么要乘以1.5呢,因为dp和px的换算关系是1.5


解决方法二:

public class ListViewUtil {

    public static void setListViewHeightBasedOnChildren(ListView listView,HomeTopBannerAdapter topBannerAdapter) {
        if (topBannerAdapter == null) {
            return;
        }
        int totalHeight = 0;//总高度
        for (int i = 0, len = topBannerAdapter.getCount(); i < len; i++) {
            // listAdapter.getCount()返回数据项的数目
            View listItem = topBannerAdapter.getView(i, null, listView);
            listItem.measure(0, 0); // 计算子项View 的宽高
            totalHeight += listItem.getMeasuredHeight(); // 统计所有子项的总高度
        }
        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = totalHeight
                + (listView.getDividerHeight() * (topBannerAdapter.getCount() - 1));
        // params.height最后得到整个ListView完整显示需要的高度
        listView.setLayoutParams(params);
    }
}

你可能感兴趣的:(错误解决,Android)