关于ListView在ScrollView中只能显示一行数据的问题
来源:互联网 发布:jackson转换json 编辑:程序博客网 时间:2024/05/17 23:27
问题原因:发现在ScrollView中嵌套ListView空间,无法正确的计算ListView的大小,故可以通过代码,根据当前的ListView的列表项计算列表的尺寸。
方案解决一:计算高度
/** * 为了解决ListView在ScrollView中只能显示一行数据的问题 * * @param listView */ public static void setListViewHeightBasedOnChildren(ListView listView) { // 获取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); 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); }
方案解决二:重写Listview
import android.content.Context;import android.util.AttributeSet;import android.widget.ListView;/** * Created by zxf on 2016/10/17. */public class AllListView extends ListView{ public AllListView(Context context, AttributeSet attrs) { super(context, attrs); } public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int mExpandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, mExpandSpec); }}
0 0
- 关于ListView在ScrollView中只能显示一行数据的问题
- 为了解决ListView在ScrollView中只能显示一行数据的问题
- ListView嵌套在ScrollView中,只显示一行的解决办法
- ScrollView中嵌套ListView只显示一行的问题
- 解决ListView嵌套在ScrollView中只显示一行的问题
- 关于在ScrollView中嵌套ListView,ListView显示不全的问题
- Android中解决scrollview中嵌套listview的listview只显示一行的问题
- Android中关于ScrollView嵌套listView,ListView Item只显示一行的解决方法
- ScrollView中嵌套GridView只能显示一行的解决办法
- MeasureSpec学习(解决ScrollView中嵌套ListView,ListView只显示一行的问题)
- ScrollView中嵌套ListView/GridView:(解决就显示一行数据)
- ListView在ScrollView中显示不全或只显示一行的解决方法
- ListView在ScrollView中只显示一行浅析
- ScrollView中嵌套ListView只显示一行问题
- 关于ScrollView嵌套ListView或GridView只显示一行的问题
- 解决把listview放在ScrollView只显示一行的问题
- 解决GridView,ListView嵌套在ScrollView时只显示一行高度的问题
- 解决GridView,ListView嵌套在ScrollView时只显示一行高度的问题
- J2EE之java自定义注解在项目中的使用
- java与redis的整合
- 干货:结合Scikit-learn介绍几种常用的特征选择方法
- 文件描述符拷贝
- Hibernate的10个常见面试问题及答案
- 关于ListView在ScrollView中只能显示一行数据的问题
- java程序员之路
- Android RecyclerView 你不知道的用法
- 使用nginx发布网站
- Android程序在非Debugger状态下运行出现waiting for Debugger?
- iOS - cocoapods的安装与使用
- MYSQL使用UTF8中文乱码终极解决办法
- js 函数的几种写法
- 友盟分享遇到的问题iphone5