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()方法,实现界面刷新

  • 相关阅读:
    vscode Git提交
    安装 nrm
    vue+element ui项目总结点(六)table编辑当前行、删除当前行、新增、合计操作
    Filebrowser安装教程
    vue数据处理:把数组处理成适用于tree组件的数据
    WC2016模拟Divisor
    对拍模板
    题解(5031. 【NOI2017模拟3.27】B)(数论,组合数学)
    Codeforces #657 Div2C choosing flowers
    关于一个大菜鸡的记录
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/4931121.html
Copyright © 2011-2022 走看看