ListView和GridView根据item数量自适应高度的工具类封装

来源:互联网 发布:李孝利 长相 知乎 编辑:程序博客网 时间:2024/05/22 00:37

很多时候我们使用ListView和GridView由于item的高度不确定,是动态变化的,
这时候就需要自适应高度,可以考虑新建工具类放入下边的静态方法,使用的时候用类名调用方法传入GridView或者listview对象即可实现效果

   /**     * ListView自适应高度的方法     *     * @param listView     */    public static void setListViewHeightBasedOnChild(ListView listView) {        // 获取ListView对应的Adapter        ListAdapter listAdapter = listView.getAdapter();        if (listAdapter == null) {            return;        }        int totalHeight = 0;        for (int i = 0; i < listAdapter.getCount(); 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);    }}
阅读全文
0 0