Я создаю приложение, содержащее просмотр пейджера с вкладками, способными прокручивать, я хочу делать некоторые операции внутри пейджера представления и во время операций я хочу отключить просмотр прокрутки после выполненных операций, разрешить просмотр салфетки может ли кто-нибудь сказать мне, как это сделать, и моя деятельность распространялась на активность фрагмента заблаговременно
Как сделать салфетки отключены в представлении пейджера в 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();