最近开发一个Android小应用。就是利用ViewPager实现多个页面来回导航切换,每个页面是一个ListView显示多个条目。本来以为很简单的事情,左右手势实现Viewpager的切换,上下手势实现ListView的功能。谁知道在手机上运行时,发现一个焦点冲突现象。左右导航没有问题,但是在一个页面里,经常出现ListView上下手势失效。总是无法实现List的上下滚动,即使很明显的上下手势也是触发了ViewPager的页面切换。
查了很多方法,发现重写Viewpager的手势检测功能可以解决这个问题。将源代码贴上。
————————————————————————-
public class MyViewPager extends ViewPager {
private GestureDetector mGestureDetector;
View.OnTouchListener mGestureListener;
public MyViewPager(Context context) {
super(context);
}
public MyViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
mGestureDetector = new GestureDetector(new XYScrollDetector());
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
return super.onInterceptTouchEvent(event)&&mGestureDetector.onTouchEvent(event);
}
class XYScrollDetector extends SimpleOnGestureListener {
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
if(distanceY!=0&&distanceX!=0){
}
if(Math.abs(distanceY) >= Math.abs(distanceX)) {
return false;
}
return true;
}
}
}
分享到:
相关推荐
Android listview viewpager 滑动 跳动 冲突解决 ListView中嵌套ViewPage有或者滑动手势冲突解决 blog 地址 : http://blog.csdn.net/aaawqqq/article/details/43824631
NULL 博文链接:https://1002878825-qq-com.iteye.com/blog/1469206
Scrollview中嵌套ViewPager和ListView的问题和解决方案
Scrollview中嵌套ViewPager和ListView常出现的问题: ViewPager如果在Scrollview中使用,并且宽高指定为match_parent或者wrap_content则不会显示内容,但是如果将高度指定为200dp,则ViewPager则会将内容显示到屏幕...
Android viewpager实现滚屏,自动滚屏。结合lstview实现的小例子
ViewPager中嵌套ListView实现了下拉刷新和上拉更多,解决了冲突的问题。
项目支持ViewPager+Listview 上拉刷新下拉加载 解决无法加载刷新冲突问题
ViewPager与ListView的结合,实现Listview的横向滚动
滑动头部图片,下面评论数据可以进行相应的更新,希望能帮到你们~
ScrollView+ViewPager +ListView或 RecyclerView加载更多
这是一个简单的Android实例,中使用了fragment +viewpager滑动切换,以及listview列表实现数据加载,适合新人学习的Android实例
Android ViewPager实现画廊效果ListView Item添加动画集合
自定义的ViewPager,可以实现页面之前的相互切换,可以...同时该ViewPager解决了传统ViewPager和ListView,ScrollView滑动冲突问题,当然ListView的滑动冲突实在ScrollView中解决的。实践表明,滑动切换效果较好。
ScrollView嵌套ViewPager,ViewPager横向滑动时容易上下滚动处理; ScrollView嵌套ListView,ListView滚动事件处理,可滚动; ScrollView子控件获取焦点后自动置顶问题处理。 ListView滚动到顶或到底事件监听。
获取ViewPager 与 ScrollView 冲突事件的解决
viewpager+listview,实现左右滑动和上下滑动,内容简单,但功能实现了
不知道说什么,就是一个嵌套一个,貌似很多app现在都用到这种上下左右都能滑动的效果
ViewPager+ListView上拉加载下拉刷新,,,
android 仿淘宝京东 详情页可嵌套viewpager 和listview