欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android之禁止ViewPager滑动实现实例

程序员文章站 2023-12-01 10:49:58
android之禁止viewpager滑动实现实例 当我们想在同一个activity或者fragment中展示多个页面时往往会用到viewpager,通过滑动,我们可以很...

android之禁止viewpager滑动实现实例

当我们想在同一个activity或者fragment中展示多个页面时往往会用到viewpager,通过滑动,我们可以很方便地在不同的页面中切换。但是在某些情况下我们可能并不需要通过滑动来切换viewpager中的页面(比如为了避免跟页面内的某些触摸事件冲突),而是希望只点击下面或者上面的按钮来切换页面。像知乎那样:

Android之禁止ViewPager滑动实现实例

那么有什么方法可以实现不滑动viewpager呢?其实很简单,只需要自定义一个不滑动的viewpager就可以了。viewpager之所以会随着手势滑动,是因为它使用了ontouchevent监听事件(查看源码就可以知道)。那我们可以反其道而行之,改动它的ontouchevent方法就可以了。

使用自定义控件的写法,创建一个myviewpager类,继承于viewpager,由于我们并不需要触摸监听事件,所以重写viewpager中的ontouchevent方法,返回一个true即可。

public class myviewpager extends viewpager {

  public myviewpager(context context) {
    super(context);
  }

  public myviewpager(context context, attributeset attrs) {
    super(context, attrs);
  }

  @override
  public boolean ontouchevent(motionevent ev) {
    return true;
  }
}

然后,只需要使用我们自定义好的viewpager即可。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!