Что я пытаюсь сделать: Я пытаюсь включить/отключить прокрутку пейджера программно, когда программа работает
Пример: Если в потоке, если я проверяю условие, и если он возвращает true
enable swiping, и если условие возвращает false
, отключите прокрутку.
Решение, которое я использую, - это один
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;
} }
Затем выберите это вместо встроенного viewpager в XML
<mypackage.CustomViewPager
android:id="@+id/myViewPager"
android:layout_height="match_parent"
android:layout_width="match_parent" />
Вам просто нужно вызвать метод setPagingEnabled с "false", и пользователи не смогут прокручивать страницы.
Проблема с приведенной выше методологией: Я не могу установить свойство в потоке, I: e.... Я либо могу включить или отключить прокрутку. Но я не могу сделать это на основе условия
Вопрос:
- Могу ли я достичь своей цели каким-то другим способом, если да, то что это?
- Или это невозможно?