zoukankan      html  css  js  c++  java
  • Android动态设定GridView的高度,固定column,实现高度自适应

    动态设定GridView的高度,固定column,根据gridview中的item个数设定高度:

    调用以下方法:

    [java] view plaincopy
     
     
    1. public static void setListViewHeightBasedOnChildren(GridView listView) {  
    2.     // 获取listview的adapter  
    3.        ListAdapter listAdapter = listView.getAdapter();  
    4.        if (listAdapter == null) {  
    5.            return;  
    6.        }  
    7.        // 固定列宽,有多少列  
    8.        int col = 4;// listView.getNumColumns();  
    9.        int totalHeight = 0;  
    10.        // i每次加4,相当于listAdapter.getCount()小于等于4时 循环一次,计算一次item的高度,  
    11.        // listAdapter.getCount()小于等于8时计算两次高度相加  
    12.        for (int i = 0; i < listAdapter.getCount(); i += col) {  
    13.         // 获取listview的每一个item  
    14.            View listItem = listAdapter.getView(i, null, listView);  
    15.            listItem.measure(0, 0);  
    16.            // 获取item的高度和  
    17.            totalHeight += listItem.getMeasuredHeight();  
    18.        }  
    19.   
    20.        // 获取listview的布局参数  
    21.        ViewGroup.LayoutParams params = listView.getLayoutParams();  
    22.        // 设置高度  
    23.        params.height = totalHeight;  
    24.        // 设置margin  
    25.        ((MarginLayoutParams) params).setMargins(10, 10, 10, 10);  
    26.        // 设置参数  
    27.        listView.setLayoutParams(params);  
    28.    }  

    调用此方法后,需要在调用notifyDataSetChanged()方法,实现界面刷新

  • 相关阅读:
    别让猴子翻到背上
    python生成二维码
    50条经典爱情观
    智力测试题
    SQL数据库优化
    递归函数实现二分查找法
    软件开发类别
    递归函数的深度问题
    UVALive
    UVALive
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/4931121.html
Copyright © 2011-2022 走看看