NestedScrollView嵌套ListView滑动冲突
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NestedScrollView嵌套ListView滑动冲突相关的知识,希望对你有一定的参考价值。
时间:2015年12月22日16:12:34
- 问题描述:
1) 在android.support.v4.widget.NestedScrollView中直接嵌套ListView时出现的情况:listview显示不全只有一行或者两行。
2) 如果listview的item中有根据id选择选项会导致选择错乱,现在(2015年12月22日16:13:55)碰到的问题是:listview中包含有switch控件,
用来对该item是否可用进行判断,但是现在冲突导致的listview中位置错乱。
2.解决方法: 计算出每一个item的高度,此方法用在listview.setAdapter()后。
private void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter(); //获得Adapter
if (listAdapter == null) { //判断是否为空
return;
}
int totalHeight = 0; //定义总高度
//根据listAdapter.getCount()获取当前拥有多少个item项,然后进行遍历对每一个item获取高度再相加最终获得总的高度。
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
//获取到list的布局属性
ViewGroup.LayoutParams params = listView.getLayoutParams();
//listview最终高度为item的高度+分隔线的高度,这是重新设置listview的属性
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
//将重新设置的params再应用到listview中
listView.setLayoutParams(params);
}
以上是关于NestedScrollView嵌套ListView滑动冲突的主要内容,如果未能解决你的问题,请参考以下文章
PHP.DHN透过 NestedScrollView 源码解析嵌套滑动原理-附教程
PHP.DHN透过 NestedScrollView 源码解析嵌套滑动原理-附教程
Android番外篇 NestedScrollView嵌套RecyclerView
Android之解决NestedScrollView嵌套RecyclerView部分手机返回到这个页面Recyclerview顶部,而不是页面NestedScrollView顶部
Android之解决NestedScrollView嵌套RecyclerView部分手机返回到这个页面Recyclerview顶部,而不是页面NestedScrollView顶部