Android學習 之 問題&解答 ScrollView中嵌套ListView時顯示不全的簡便解決方案

來源:互聯網
上載者:User
  1. 這種方法是把資料全部填充上去,後動態改變listView的高度,

  2. 填充一部分資料,相當於一頁,然後動態添加資料並動態改變ListView的高度

第一種方法:

1.設定起始高度
2.動態改變高度(並設定選擇項顯示最新記錄)

在更多button按鈕中更改lsitview的高度大致思路是這樣的。細節需要考慮考慮

                android.view.ViewGroup.LayoutParams lp = listview.getLayoutParams();
                lp.height=lp.height+100;//此處可以是新添加資料的高度
                listview.setLayoutParams(lp);

                System.out.println("---------------------");

第二種方法:

1.顯示部分資料

2.動態下載一頁資料並重新整理ListView的adapter

---------------------------------------------------------------------------------------------------------
public class Utility {
    public static void setListViewHeightBasedOnChildren(ListView listView) {  
        //擷取ListView對應的Adapter  
        ListAdapter listAdapter = listView.getAdapter();   
        if (listAdapter == null) {  
        // pre-condition  
        return;  
        }  
          
        int totalHeight = 0;  
        for (int i = 0, len = listAdapter.getCount(); i < len; i++) { //listAdapter.getCount()返回資料項目的數目  
        View listItem = listAdapter.getView(i, null, listView);  
        listItem.measure(0, 0); //計運算元項View 的寬高  
        totalHeight += listItem.getMeasuredHeight(); //統計所有子項的總高度  
        }  
          
        ViewGroup.LayoutParams params = listView.getLayoutParams();  
        params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));  
        //listView.getDividerHeight()擷取子項間分隔字元佔用的高度  
        //params.height最後得到整個ListView完整顯示需要的高度  
        listView.setLayoutParams(params);  
        }
}

第三種方法:把ListView換成Linearlayout可以動態添加資料

(以上三種方法都是把最外層的ScrollView 的大小改變了,並通過滑動ScrollView的捲軸來查看Listview裡的內容)

http://www.cnblogs.com/LuoYer/archive/2011/05/07/2039884.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.