Android重绘ListView高度

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

工具类

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对应的AdapterListAdapter 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);

Android重绘ListView高度相关推荐

  1. android listview 不重绘,重绘listview

    重绘listview (2010-04-28 11:19:31) 标签: 杂谈 分类: C# 要实现ListView的各行各列重绘是一件很麻烦的事情,最近就确定要实现一个功能需求,在一个ListVie ...

  2. android 重绘如何能不闪一下屏幕_回流和重绘

    浏览器的渲染过程 本文先从浏览器的渲染过程来从头到尾的讲解一下回流重绘,如果大家想直接看如何减少回流和重绘,优化性能,可以跳到后面.(这个渲染过程来自MDN) 从上面这个图上,我们可以看到,浏览器渲染 ...

  3. android 重绘如何能不闪一下屏幕_浏览器渲染机制——重绘重排

    性能优化中,减少重绘重排应该是一种很好的优化方式,我们具体看一下什么情况下会造成重绘重排,为什么减少重绘重排可以做到优化,怎么样减少重绘重排. 浏览器渲染过程 我们先看看当浏览器拿到服务端返回的资源时 ...

  4. android 重绘如何能不闪一下屏幕_前端性能优化之重绘和重排

    性能优化中,减少重绘重排应该是一种很好的优化方式,我们具体看一下什么情况下会造成重绘重排,为什么减少重绘重排可以做到优化,怎么样减少重绘重排. 浏览器渲染过程 我们先看看当浏览器拿到服务端返回的资源时 ...

  5. Android 动态计算ListView的高度

    目录 一.简介 二.效果图 三.代码实现 一.简介 在Android开发的过程中有的时候我们需要手动计算ListView的高度,比如说,ScrollView中嵌套ListView的时候,我们就需要手动 ...

  6. android view交替动画,Android View原理(View树遍历,View重绘,View动画)

    一.屏幕绘图基础 Android中的GUI系统是客户端和服务端配合的窗口系统,即后台运行了一个绘制服务,每个应用程序都是该服务端的一个客户端,当客户端需要绘制时,首先请求服务端创建一个窗口,然后在窗口 ...

  7. java fx 重绘_JavaFX 2.2:如何强制重绘/更新ListView

    我在JavaFX 2模式对话窗口中有一个ListView控件.JavaFX 2.2:如何强制重绘/更新ListView 此ListView显示DXAlias实例,它由单元工厂生产的ListCells. ...

  8. android旋转不重绘,Android自定义view仿微信刷新旋转小风车

    本文实例为大家分享了Android仿微信刷新旋转小风车 具体代码,供大家参考,具体内容如下 不太会录像,没办法,智能截图了 不多说了,直接上代码 package com.shipneg.demoysp ...

  9. Android里面的settext作用,Android性能优化-TextView的setText方法会导致界面重绘?

    问题现象 大概就是我们在自定义一个视频组件的ui时,发现了一段异常的效果. 我简述一下: 视频的控制器 底部一般都是 显示时间(textview)和进度条(seekbar)的 一般要实现这个效果 都是 ...

最新文章

  1. Shell命令-文件及内容处理之more、less
  2. 数据集的使用方法和技巧
  3. placement new(转)
  4. 每天一道LeetCode-----在字符串s中找到最短的包含字符串t中所有字符的子串,子串中字符顺序无要求且可以有其他字符
  5. C# lambda表达式与匿名方法
  6. PCM设备是做什么的? PCM作用是什么?
  7. 数据结构与算法 - 稀疏数组(理解+代码实现案例)
  8. VS系列编译器基本调试快捷键的使用
  9. w10电脑c盘满了怎么清理_快速清理:Win10系统C盘满了怎么办?
  10. 30分钟!用Django做一个迷你的Todolist!下篇!
  11. html如何添加阿里图标,CSS引入阿里iconfont图标步骤
  12. Android云真机原理以及云真机平台搭建实践
  13. python读取excel文件数据并且画折线图(入门级)
  14. 语音计算机在线算使用方法,计算器在线计算
  15. IDEA 从入门到踩坑(4)-No tests found for given includes 错误解决
  16. 棋牌麻将 - 基础名词讲解与汇总
  17. 关于如何使用DirectX11进行编程的相关问题
  18. 数学建模学习(98):CHIO优化算法
  19. Git分支及其协同开发
  20. MATLAB虚拟现实

热门文章

  1. 使用SQLServer配置管理器配置SQLServer数据库引擎实例,以便侦听特定的固定1433端口。...
  2. Windows PowerShell 2.0语言之字面类型系统
  3. 华为AR28-11路由器配置
  4. SSH 组建轻量级架构 附录 -- 遇到的问题和解答
  5. 资本主义社会是不存在人道的
  6. TCP和UDP相关记录
  7. nodejs、gulp调试工具node-inspector使用
  8. OCA读书笔记(9) - 管理数据同步
  9. 集成公司内部的多个子系统(兼容B/S和C/S),实现单点登录功能的多系统的统一入口功能...
  10. 负载均衡策略深入剖析