`
z303729470
  • 浏览: 134071 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android开发ViewPager中ListView失效问题解决方法

 
阅读更多
最近开发一个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;
}
}
}
分享到:
评论

相关推荐

    ViewPager嵌套ListVIew实现上拉和下拉刷新

    在Android开发中,有时我们需要在一个页面中展示大量的数据,这时我们可能会选择使用ViewPager结合ListView来构建一个可滑动且分页的视图。标题“ViewPager嵌套ListView实现上拉和下拉刷新”揭示了一个关键的技术点...

    安卓下拉上拉刷新相关-ViewPager中嵌套ListView实现了下拉刷新和上拉更多解决了冲突的问题。.zip

    本示例主要探讨如何在ViewPager中嵌套ListView,同时实现下拉刷新和上拉加载更多的功能,并解决两者之间可能存在的冲突问题。 首先,我们要理解ViewPager和ListView各自的工作原理。ViewPager主要用于展示多个页面...

    Android编程开发ScrollView中ViewPager无法正常滑动问题解决方法

    总之,解决Android编程开发中ScrollView中ViewPager无法正常滑动的问题,关键在于理解事件分发机制,并通过自定义ScrollView来判断和处理滑动事件。通过创建一个自定义的ScrollView子类,并结合GestureDetector,...

    SlidingMenu+ViewPage+ListView嵌套(类似网易 ) ListView点击事件失效冲突问题解决

    在Android应用开发中,我们经常会遇到复杂布局的嵌套,比如`SlidingMenu`、`ViewPager`和`ListView`的组合。这样的设计可以为用户提供类似网易新闻客户端的体验,左侧是滑动菜单,中间是`ViewPager`用于切换不同的...

    Android中Viewpager禁止滑动的实现

    在Android开发中,ViewPager是一个非常常用的组件,它用于展示多个页面并允许用户通过左右滑动进行切换。然而,在某些特定场景下,我们可能需要禁止ViewPager的滑动功能,例如当ViewPager内部包含可滚动的视图(如...

    解决android Listview的item中最外层Margin失效的问题

    总的来说,解决ListView item的外层Margin失效的问题通常需要理解ListView的工作原理,并结合自定义Divider、Adapter或ViewGroup等方法进行调整。在开发中,选择适合项目需求的解决方案并进行适当的优化,是提高用户...

    浅谈Android中适配器的notifyDataSetChanged()为何有时不刷新

    在Android开发中,ListView是常用的数据展示控件,与之配套使用的适配器Adapter负责将数据转化为可显示的视图。适配器的核心方法之一就是`notifyDataSetChanged()`,它的作用是通知ListView数据集发生了变化,需要...

    recyclerview+viewpager

    在Android开发中,"RecyclerView+ViewPager"是一种常见的组合,用于构建高效的、可滑动的界面。这个组合在很多场景下非常实用,例如实现类似京东分类的功能,用户可以通过左右滑动来浏览不同的分类,每个分类下又有...

    Android View的事件分发机制简单理解

    在开发过程中遇到的滑动冲突,例如ViewPager和横向RecyclerView,滑动ViewPager发现RecyclerView滑动不了,或者ViewPager和ListView,能滑动ListView确发现水平方向的滑动失效。滑动冲突的解决方法都是基于事件分发...

    scrollview嵌套

    总结,ScrollView嵌套是Android开发中解决复杂滚动需求的一种方法,但需要谨慎使用以防止性能问题。通过理解嵌套滚动的工作原理和使用NestedScrollView,以及适当的性能优化,我们可以创建出用户体验良好的应用界面...

Global site tag (gtag.js) - Google Analytics