相关疑难解决方法(0)

如何在触摸特定视图时禁用viewpager适配器?

我有一个viewpager在向左/向右滑动时在标签之间切换.在我的第二个标签中,我有一些自定义视图,其中有捏和拖动的监听器但是当我尝试捏或拖动时,viewpager开始刷页面.

我想到的一个解决方案是在触摸那些特定视图时禁用滑动,只在触摸那些视图外时滑动.这可能吗?

更新: @Asok提供了解决方案.但后来更新了在我的情况下无法工作的代码,所以我发布了一段对我有用的代码:

public class CustomViewPager extends ViewPager {
private boolean swipeable = true;

public CustomViewPager(Context context) {
    super(context);
}

public CustomViewPager(Context context, AttributeSet attrs) {
    super(context, attrs);
}

// Call this method in your motion events when you want to disable or enable
// It should work as desired.
public void setSwipeable(boolean swipeable) {
    this.swipeable = swipeable;
}

@Override
public boolean onInterceptTouchEvent(MotionEvent arg0) {
    return (this.swipeable) ? super.onInterceptTouchEvent(arg0) : false;
}
Run Code Online (Sandbox Code Playgroud)

让我假设我有一个可拖动的视图,我需要在拖动开始时禁用滑动,并在拖动完成时重新启用,所以在我所谓的视图的TouchEvent中:

    @Override
public boolean onTouchEvent(MotionEvent event) { …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager

26
推荐指数
2
解决办法
3万
查看次数

标签 统计

android ×1

android-viewpager ×1