关于ListView和ScrollView冲突问题的解决方案
来源:互联网 发布:怎么下载淘宝助理5.5 编辑:程序博客网 时间:2024/06/07 10:28
有时,我们会遇到这样的情况:在一个布局里既有ListView,又有ScrollView,且ScrollView包含ListView,这是会出现数据显示不全,最多可能只显示1~2条的情况。(注:通常,ScrollView里边包含列表视图或网格视图时,也都会出现冲突问题。)
该如何解决这个问题呢?
首先,要知道ScrollView的关键点--滚动视图,只能容纳一个子控件,通常放线性布局。
这里,给出2种解决方案:
第一种:
1、重写ListView的onMeasure函数
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int specHeight = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, specHeight);
}
2、解决默认显示listView顶部的问题
mListView.setFocusable(false);
这是代码量最少的一种处理方式,用的是自定义的listView方式,复写onMeasure(),
重新计算了高度。
第二种:
在设置Adapter后,重新调用下面的方法计算ListView的高度。
注:该方法要求子项根布局必须是线性布局。
关键代码:
public void setListViewHeight(ListView listView){
ListAdapter adapter = listView.getAdapter();
int totalHeight = 0;
for(int i=0; i<adapter.getCount(); i++){
View listItem = adapter.getView(i, null, listView);
listItem.measure(0, 0); //重新计算子项的宽高
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listItem.getLayoutParams();
params.height = totalHeight + (listItem.getDividerHeight() * (adapter.getCount()-1));
listView.setLayoutParams(params);
}
写一个方法,用来接收列表视图控件,该方法里要做的事:将高度重新计算一下,并将其高度设置给列表视图,获取列表视图的适配器。
- 关于ListView和ScrollView冲突问题的解决方案
- ScrollView嵌套ListView和Gridview冲突问题的最优解决方案
- ScrollView嵌套ListView冲突问题的解决方案
- ScrollView嵌套ListView冲突问题的解决方案
- 关于处理解决ListView 和 ScrollView 共存冲突的问题。
- listview 和 scrollview 冲突的问题
- ScrollView和ListView的冲突问题
- ScrollView和ListView冲突的问题
- ScrollView和ListView的冲突问题
- listview 和scrollview冲突问题
- ScrollView嵌套ListView冲突问题的最优解决方案
- ScrollView嵌套ListView冲突问题的最优解决方案
- ScrollView嵌套ListView冲突问题的最优解决方案
- ScrollView嵌套ListView冲突问题的最优解决方案
- ScrollView嵌套ListView冲突问题的最优解决方案
- ScrollView嵌套ListView冲突问题的最优解决方案
- ScrollView嵌套ListView冲突问题的最优解决方案
- ScrollView嵌套ListView冲突问题的最优解决方案
- perf学习-linux自带性能分析工具
- return能否跳出循环?终止循环。
- Docker在windows上的使用尝试
- 【UFLDL-exercise6- Self-Taught Learning】
- iOS开发中的APP ICON的大小
- 关于ListView和ScrollView冲突问题的解决方案
- LeetCode 209. Minimum Size Subarray Sum
- 异步任务加载网络数据——AsyncTask使用
- 京东2016实习生在线编程题
- 为什么软件不应有主人
- 【GDOI模拟】暴走的图灵机
- 《海边的卡夫卡》读后感
- 级联菜单导致的JSP页面异常
- Leetcode #38. Count and Say 数数报数 解题报告