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

lak*_*eep 15 android android-viewpager

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

Pri*_*tel 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;
}
}
Run Code Online (Sandbox Code Playgroud)

然后在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" />
Run Code Online (Sandbox Code Playgroud)

现在使用CustomViewPager而不是ViewPager在您的活动中.就是这样.现在,随时禁用滑动,只需要用false调用setPagingEnabled方法.

CustomViewPager mViewPager = (CustomViewPager) findViewById(R.id.pager);
mViewPager.setPagingEnabled(false);
Run Code Online (Sandbox Code Playgroud)