android-viewPager

lizheyi 发布于 2014/10/10 16:54
阅读 232
收藏 0

viewpager中嵌套viewpager有什么冲突,怎么解决??求大神。

加载中
0
Glide
Glide

会有左右滑动事件的冲突,外围的ViewPager要重写几个方法就可以了。按这样的方式自定义一个ViewPager,叫NonSwipeableViewPager 。


public class NonSwipeableViewPager extends ViewPager {
    private boolean swipeable;

    public NonSwipeableViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);

        TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.NonSwipeableViewPager);
        swipeable = ta.getBoolean(R.styleable.NonSwipeableViewPager_swipeable, true);
        ta.recycle();
    }

    @SuppressLint("ClickableViewAccessibility")
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return swipeable ? super.onTouchEvent(event) : false;
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent event) {
        return swipeable ? super.onInterceptTouchEvent(event) : false;
    }

    public boolean isSwipeable() {
        return swipeable;
    }

    public void setSwipeable(boolean swipeable) {
        this.swipeable = swipeable;
    }

}




0
lizheyi
lizheyi
谢了,大哥。不会自定义viewpager,我先看看。不会给你留言哈。
0
zhx2012
zhx2012

引用来自“Glide”的评论

会有左右滑动事件的冲突,外围的ViewPager要重写几个方法就可以了。按这样的方式自定义一个ViewPager,叫NonSwipeableViewPager 。


public class NonSwipeableViewPager extends ViewPager {
    private boolean swipeable;

    public NonSwipeableViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);

        TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.NonSwipeableViewPager);
        swipeable = ta.getBoolean(R.styleable.NonSwipeableViewPager_swipeable, true);
        ta.recycle();
    }

    @SuppressLint("ClickableViewAccessibility")
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return swipeable ? super.onTouchEvent(event) : false;
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent event) {
        return swipeable ? super.onInterceptTouchEvent(event) : false;
    }

    public boolean isSwipeable() {
        return swipeable;
    }

    public void setSwipeable(boolean swipeable) {
        this.swipeable = swipeable;
    }

}




请问两个viewpager都用这个吗? 
Glide
Glide
只需要外围的用这个。
返回顶部
顶部