Как сделать салфетки отключены в представлении пейджера в android

Я создаю приложение, содержащее просмотр пейджера с вкладками, способными прокручивать, я хочу делать некоторые операции внутри пейджера представления и во время операций я хочу отключить просмотр прокрутки после выполненных операций, разрешить просмотр салфетки может ли кто-нибудь сказать мне, как это сделать, и моя деятельность распространялась на активность фрагмента заблаговременно

Ответ 1

Создайте новый класс с именем CustomViewPager. Класс наследует от ViewPager и включает новый метод под названием setPagingEnabled. Чтобы включить/отключить прокрутку, просто перепишите два метода: onTouchEvent и onInterceptTouchEvent. Оба возвращают 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 в своей деятельности. И это так. Теперь, в любое время, чтобы отключить прокрутку, просто нужно вызвать метод setPagingEnabled с помощью false.

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

Ответ 2

Попробуйте использовать ниже методы

Чтобы отключить прокручивание вызова

viewPager.beginFakeDrag();

Чтобы включить прокручивание вызова

viewPager.endFakeDrag();