如何在android中的视图寻呼机中进行滑动禁用

时间:2015-06-23 10:18:00

标签: android android-viewpager

我正在创建一个包含带有可滑动标签的视图寻呼机的应用程序我想在视图寻呼机内部进行一些操作,并且在操作时我想在操作完成后禁用滑动视图启用滑动视图 任何人都可以告诉我如何做到这一点,我的活动正在提前感谢片段活动

2 个答案:

答案 0 :(得分:41)

创建一个名为CustomViewPager的新类。该类继承自ViewPager,并包含一个名为setPagingEnabled的新方法。要启用/禁用滑动,只需覆盖两种方法:onTouchEventonInterceptTouchEvent。如果禁用分页,则两者都返回false。

以下是完整代码:

package com.yourpackage;

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;

public class CustomViewPager extends ViewPager {

private boolean enabled;

public CustomViewPager(Context context, AttributeSet attrs) {
    super(context, attrs);
    this.enabled = true;
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (this.enabled) {
        return super.onTouchEvent(event);
    }

    return false;
}

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    if (this.enabled) {
        return super.onInterceptTouchEvent(event);
    }

    return false;
}

public void setPagingEnabled(boolean enabled) {
    this.enabled = enabled;
}
}

然后在layout.xml文件中用<com.android.support.V4.ViewPager>标记替换所有<com.yourpackage.CustomViewPager>标记,如下所示。

<com.yourpackage.CustomViewPager 
android:id="@+id/photosViewPager" 
android:layout_height="match_parent" 
android:layout_width="match_parent" />

现在在您的活动中使用CustomViewPager代替ViewPager。 就是这样。现在,无论何时禁用滑动,只需使用 false 调用setPagingEnabled方法。

CustomViewPager mViewPager = (CustomViewPager) findViewById(R.id.pager);
mViewPager.setPagingEnabled(false);

答案 1 :(得分:-5)

尝试以下方法

禁用滑动调用

viewPager.beginFakeDrag();

启用滑动调用

viewPager.endFakeDrag();