android - ViewPager如何禁止滑动,并且其中的子空间仍然可以响应点击事件?
阿神
阿神 2017-04-17 15:48:10
0
4
574

网上找到的禁止滑动答案是在dispathchTouchEvent()方法里返回true,但是这样,其中的子控件也无法响应点击事件了。有人说重写子控件,使用getParent().requestDisallowInterceptTouchEvent()设置ViewPager不拦截点击事件。但是我有很多子控件,该如何实现这样的需求呢?

阿神
阿神

闭关修行中......

membalas semua(4)
迷茫

重写下ViewPager

@Override     
public boolean onTouchEvent(MotionEvent ev) {         
    return isScrollable && super.onTouchEvent(ev);     
}

@Override     
public boolean onInterceptTouchEvent(MotionEvent ev) {
     return isScrollable && super.onInterceptTouchEvent(ev);     
}

isScrollable就是是否允许滑动,阻止Viewpager的事件,子控件也能响应事件

左手右手慢动作

重写触摸事件取消左右滑动,注意重写的对象是ViewPager的,而不是Activity。

mRecoverPwdVp.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
        return true;
    }
});
大家讲道理

题主的上个问题中,我提到过这个问题实际就是对touch事件分发的理解。google一下touch事件的分发机制,了解之后你再回头看这个问题。希望对你有帮助!

小葫芦

重写ViewPager如下方法

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    return false;//不要拦截事件   事件要分发给后面的控件
}

@Override
public boolean onTouchEvent(MotionEvent ev) {
    return false;//不自己去处理事件
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan