关于滚动布局中的Listview的高度重新计算
2018-01-19 10:59
1876 查看
将计算高度的方法导入你的方法类里面。作为一个通用的方法。
注意该方法一定是在你的设置Adapter(**.setAdapter())之后。
如果你是更新了listview里面的数据,设置高度的方法就跟在notifyDataSetChanged()后面。(原因:导入新数据生成了新的item,高度改变)
/**
* 设置listview高度的方法
* @param listView
*/
public static void setListViewHeight(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView); //获得每个子item的视图
listItem.measure(0, 0); //先判断写入的widthMeasureSpec和heightMeasureSpec是否和当前的值相等,如果不等,重新调用onMeasure()
totalHeight += listItem.getMeasuredHeight(); //把每个item高度累加
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); //加上每个item之间的距离
listView.setLayoutParams(params);
}
注意该方法一定是在你的设置Adapter(**.setAdapter())之后。
如果你是更新了listview里面的数据,设置高度的方法就跟在notifyDataSetChanged()后面。(原因:导入新数据生成了新的item,高度改变)
/**
* 设置listview高度的方法
* @param listView
*/
public static void setListViewHeight(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView); //获得每个子item的视图
listItem.measure(0, 0); //先判断写入的widthMeasureSpec和heightMeasureSpec是否和当前的值相等,如果不等,重新调用onMeasure()
totalHeight += listItem.getMeasuredHeight(); //把每个item高度累加
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); //加上每个item之间的距离
listView.setLayoutParams(params);
}
相关文章推荐
- android 关于滚动嵌套高度计算问题
- 移动开发----重新计算ListView的高度
- ScrollView 嵌入Listview,当Listview中的Textview多余一行,高度如何重新计算
- 关于ScrollView中嵌套listView,textView存在多行时,listView高度计算不正确。
- 实现汽泡聊天,动态计算高度和重新布局可以有在cell中实现,封装起来
- ScrollView 嵌入Listview,当Listview中的Textview文本多行,高度如何重新计算
- android中scroll中的listview高度重新计算
- 重新计算了ListView的高度,发现最后一个item项却没有完整显示出来,或是数量越大最后几个是显示不出来的
- android ScrollView 里嵌套listview listview 重新计算高度
- 当listview的item为相对布局时item高度被挤压解决
- listview计算滑动高度 判断上滑下滑 隐藏控件
- 关于ListView的Adapter,解决ListView滚动后内容重复的问题
- 关于xib、Masonry和手动计算布局的灵活运用
- RecyclerView 和 ListView 使用对比分析(布局、API、嵌套滚动机制)
- 关于一个ListView使用多个item布局在优化时出现显示错乱的解决方案 (优化)
- 关于ListView嵌套双层布局
- UILabel,DTAttributedLabel 关于计算高度
- listview item 高度无效 + 图片放错 滚动卡顿
- 解决:ScrollView嵌套ListView导致无法正确计算ListView的高度之动态加载图片高度常规方法失效。
- 关于listview列排序后,重新再加载数据报错的解决方案