Android 一个页面上下两个ListView的页面显示

Android 一个页面上下两个ListView,当上面的ListView过长时,下面的List基本没有了滑动空间,查阅网上资料,解决办法基本是采用ScrollView做页面滑动,notifyDataSetChanged()之前,动态设置ListView的高度,但是这样会丢失List的回收机制,不太合理,项目紧先这么做了,记录一下。

/***
     * 动态设置listview的高度
     * 
     * @param listView
     */
    public void setListViewHeightBasedOnChildren(ListView listView) {
        BaseAdapter listAdapter = (BaseAdapter) listView.getAdapter();
        if (listAdapter == null) {
            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);
    }

以上方法只适应于数据量小的情况。

另外,网上也有大神指出,ListView跟ScrollView共存时,可以把页面其他元素放入ListView的Header、Footer、Item等。

posted @ 2016-07-18 17:00  星辰之力  阅读(3489)  评论(0)    收藏  举报