ListView列表只显示一行的问题
2017-01-03 10:13
162 查看
这里所提的ListView列表只显示一行的情况是,当ListView嵌套在ScrollView或PullToRefreshScrollView中的情况;网上查询问题之后,大部分提供的答案是,在mListView.setAdapter(mAdapter)之后执行:
public static void getListHeight(ListView listView){ // 获取listview的adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } // 固定列宽,有多少列 int row = listAdapter.getCount();//行数 int totalHeight = 0; for (int i = 0; i < row; i++) { // 获取listview的每一个item View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); // 获取item的高度和 totalHeight += listItem.getMeasuredHeight(); } // 获取listview的布局参数 LayoutParams params = listView.getLayoutParams(); // 设置高度 params.height = totalHeight; // 设置参数 listView.setLayoutParams(params); },
但是事实有些时候不行;
最终我采取的方式是,重写ListView或GridView中的
@Overridepublic void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);super.onMeasure(widthMeasureSpec, expandSpec);}然后,就很容易的实现了;
如想了解为什么需要测量高度,网上资源很多,原理也很明了,此处只作为简单的笔记,与大家共享;
相关文章推荐
- 普通Listview加载列表,最后一行是带输入框的显示问题
- VC中ComboBox下拉列表不显示数据或只显示一行问题
- 解决ScrollView 中的listView只显示一行的问题:
- 解决GridView,ListView嵌套在ScrollView时只显示一行高度的问题
- 解决ListView嵌套在ScrollView中只显示一行的问题
- ScrollView中嵌套ListView或者GridView时的滑动冲突 || ListView中嵌套GridView,GridView只显示一行的问题解决
- 关于android的listview数据列表显示的下拉和刷新报错问题
- ScrollView中嵌套ListView只显示一行问题
- ListView listCtrl 不能显示和不能正确添加行数据以及列表题不能显示问题
- 安卓开发——问题:ScrollView中嵌套ListView时,listview只显示一行
- 关于ScrollView嵌套ListView或GridView只显示一行的问题
- 解决Listview 只显示一行的问题
- 解决把listview放在ScrollView只显示一行的问题
- MeasureSpec学习(解决ScrollView中嵌套ListView,ListView只显示一行的问题)
- listview每一行显示不一样的控件!已更新,原来的有点儿小问题,会在内容中指明!
- ScrollView嵌套ListView,gridView只显示一行解决方案 (以及计算显示高度错误问题)
- 解决ScrollView嵌套ListView出现ListView只显示一行的问题
- 解决ScrollView中嵌套ListView和GridView只显示一行的问题
- ScrollView和ListView一起使用,解决ListView只显示一行问题!
- 关于ListView在ScrollView中只能显示一行数据的问题