首页 > 代码库 > ScrollView 与ListView 滑动冲突完美解决
ScrollView 与ListView 滑动冲突完美解决
一、介绍ListView高度的设置方法
二、根据实际需求解决冲突问题
一、介绍ListView高度的设置方法
在ScrollView中使用ListView,ListView的高度会不正常。
方式一:在XML中写死
android:layout_width="match_parent"
android:layout_height="120dp"
方式二:代码中设置固定高度(如果在运行过程中才能决定ListView高度)
public void setHeight(int height){ LayoutParams params = this.listview.getLayoutParams(); params.width = LayoutParams.FILL_PARENT; params.height = height; listview.setLayoutParams(layoutParams); }
方式三:代码中动态设置高度(让ListView高度最大 显示完全所有数据)
public void setHeight(){ int height = 0; int count = adapter.getCount(); for(int i=0;i<count;i++){ View temp = adapter.getView(i,null,listview); temp.measure(0,0); height += temp.getMeasuredHeight(); } LayoutParams params = this.listview.getLayoutParams(); params.width = LayoutParams.FILL_PARENT; params.height = height; listview.setLayoutParams(layoutParams); }
二、根据实际需求解决冲突问题
前提1:ListView 显示全部内容(假如4条数据 我显示满4条)
上述方式三让ListView高度最大,显示完全数据,滑动时就只会响应ScrollView滑动事件
此时ListView不能滑动,也没必要滑动,因为已经显示完全数据。
前提1:ListView 不想显示全部内容(假如100条数据 我只显示10条 滑动查看其余)
使用上述方式一或二,ListView没有显示完全数据
但是想焦点在ListView时滑动ListView,焦点在ScrollView时滑动ScrollView
给ListView加上监听OnTouchListener
listView.setOnTouchListener(new View.OnTouchListener() {?
@Override?
public boolean onTouch(View arg0, MotionEvent arg1) {
scrollView.requestDisallowInterceptTouchEvent(true);?
return false;
}
?}
);
ScrollView 与ListView 滑动冲突完美解决
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。