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 = 0;
            for(int i=0; inull, listView);
                listItem.measure(0, 0);
                totalHeight += listItem.getMeasuredHeight();
            }
            ViewGroup.LayoutParams params = listView.getLayoutParams();
            params.height = totalHeight + (listView.getDividerHeight() * (adapter.getCount() - 1));
            ((MarginLayoutParams) params).setMargins(0, 0, 0, 0);
            listView.setLayoutParams(params);
            System.out.println(params.height + "===" + adapter.getCount());
        }
    }

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

你可能感兴趣的:(android开发)