天天看點

Android動态設定GridView的高度,固定column,實作高度自适應

動态設定gridview的高度,固定column,根據gridview中的item個數設定高度:

調用以下方法:

[java] view

plaincopyprint?

public static void setlistviewheightbasedonchildren(gridview listview) {  

    // 擷取listview的adapter  

       listadapter listadapter = listview.getadapter();  

       if (listadapter == null) {  

           return;  

       }  

       // 固定列寬,有多少列  

       int col = 4;// 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  

       ((marginlayoutparams) params).setmargins(10, 10, 10, 10);  

       // 設定參數  

       listview.setlayoutparams(params);  

   }  

調用此方法後,需要在調用notifydatasetchanged()方法,實作界面重新整理

繼續閱讀