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等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM