博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android重绘ListView高度
阅读量:6981 次
发布时间:2019-06-27

本文共 1780 字,大约阅读时间需要 5 分钟。

Android重绘ListView高度

经常会有这样需求,需要ListView默认将所有的条目显示出来,这就需要外层使用ScrollView,ScrollView里面放置一个重绘高度的ListView,类似下面这样

P

工具类

package ……;import android.view.View;import android.view.ViewGroup;import android.widget.ListAdapter;import android.widget.ListView;/** * Created by kongqw on 2015/11/25. */public final class ListViewUtil {
private ListViewUtil() { } public static void setListViewHeightBasedOnChildren(ListView listView) { try { // 获取ListView对应的Adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0, len = listAdapter.getCount(); i < len; i++) { // listAdapter.getCount()返回数据项的数目 View listItem = listAdapter.getView(i, null, listView); // 计算子项View 的宽高 listItem.measure(0, 0); // 统计所有子项的总高度 totalHeight += listItem.getMeasuredHeight(); } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); // listView.getDividerHeight()获取子项间分隔符占用的高度 // params.height最后得到整个ListView完整显示需要的高度 listView.setLayoutParams(params); } catch (Exception e) { e.printStackTrace(); } }}

使用

在ListView调用完setAdapter()后,调用工具类的方法,重绘ListView的高度,类似这样

……mLvOutputs = (ListView) findViewById(R.id.lv_outputs);……TransactionOutputsAdapter transactionOutputsAdapter = new TransactionOutputsAdapter(this, transactionInfo.getData().getOut());mLvOutputs.setAdapter(transactionOutputsAdapter);// 重新计算Listview高度ListViewUtil.setListViewHeightBasedOnChildren(mLvOutputs);
你可能感兴趣的文章
你用过 PropTypes 的这些类型检查么?
查看>>
H5小游戏 【篇一】 组词游戏
查看>>
枚举的使用示例
查看>>
换个姿势学数学:学的爽,用的上
查看>>
runC爆严重漏洞影响Kubernetes、Docker,阿里云修复runC漏洞的公告
查看>>
力扣(LeetCode)146
查看>>
Understanding HBase and BigTable 译文
查看>>
Java™ 教程(泛型、继承和子类型)
查看>>
Spring AOP
查看>>
如何优雅的构建排序公式
查看>>
React手稿之 React-Saga
查看>>
Java基础【七】 - List集合汇总
查看>>
比原链Bytom错误码一览
查看>>
Python第一天:你必须要知道的Python擅长领域以及各种重点学习框架(包含Python在世界上的应用)...
查看>>
sdedit使用方法介绍(混沌向)
查看>>
Nginx深入了解-进阶(二)
查看>>
脚本模式创建测试用例 - Katalon Studio
查看>>
C++ 函数参数的扩展
查看>>
SpringCloud核心教程 | 第二篇: 使用Intellij中的maven来快速构建Spring Cloud工程
查看>>
opencv python 模板匹配
查看>>