天天看点

android 垂直两级ListView联动

android 垂直两级ListView联动解决

思路:将一个ListView设置位另一个ListView的Footer或者Header。我使用的是作为Footer。但是在实践过程中出现问题,就是作为Footer的ListView只显示一项。
后来弄了一下午都不行,然后终于在网上找到了方法。就是动态设置作为Footer的ListView的高度。
在设置adapter之后,调用如下方法动态设置ListView的高度。
           
/**
     * 动态设置listview的高度
     * @param listView
     */
    public void setListViewHeightBasedOnChildren(ListView listView) {
        ListAdapter adapter = listView.getAdapter();
        if(adapter != null) {
            int totalHeight = ;
            for(int i=; i<adapter.getCount(); i++) {
                View listItem = adapter.getView(i, null, listView);
                listItem.measure(, );
                totalHeight += listItem.getMeasuredHeight();
            }
            ViewGroup.LayoutParams params = listView.getLayoutParams();
            params.height = totalHeight + (listView.getDividerHeight() * (adapter.getCount() - ));
            ((MarginLayoutParams) params).setMargins(, , , );
            listView.setLayoutParams(params);
            System.out.println(params.height + "===" + adapter.getCount());
        }
    }
           

这是第一篇博客,以后要养成写博客的习惯了!

继续阅读