關於listview,gridview裏面數據顯示不全的問題

listview,girdview這些控件在我們android開發經常用的到,但是,數據顯示不全的問題也是我們經常碰到的,下面只要在代碼中加入幾行代碼即可

以下方法僅供參考,轉自網絡

listview控件顯示數據

private void listFitHeight(ListView listView){
    RepairDetailInfosAdpter listAdapter=(RepairDetailInfosAdpter)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));
    ((ViewGroup.MarginLayoutParams)params).setMargins(0,0,0,0);
    listView.setLayoutParams(params);

}

gridview控件顯示數據

private static void setListViewHeightBasedOnChildren(GridView listView, int col) {
    //獲取listview的adapter
    ListAdapter listAdapter = listView.getAdapter();
    if (listAdapter == null) {
        return;
    }
    //固定列寬,有多少列
    //intcol=3;//listView.getNumColumns();
    int totalHeight = 0;
    //i每次加4,相當於listAdapter.getCount()小於等於4時循環一次,計算一次item的高度,
    //listAdapter.getCount()小於等於8時計算兩次高度相加
    for (int i = 0; i < listAdapter.getCount(); i += col) {
   //獲取listview的每一個item
        View listItem = listAdapter.getView(i, null, listView);
        listItem.measure(0, 0);
   //獲取item的高度和
        totalHeight += listItem.getMeasuredHeight();
    }

   //獲取listview的佈局參數
    ViewGroup.LayoutParams params = listView.getLayoutParams();
   //設置高度
    params.height = totalHeight;
   //設置margin
    ((ViewGroup.MarginLayoutParams) params).setMargins(10, 10, 10, 10);
   //設置參數
    listView.setLayoutParams(params);
}
發佈了27 篇原創文章 · 獲贊 7 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章