Как отключить смахивание на FragmentStatePagerAdapter?
Я следую учебник, который использует TabLayout с FragmentStatePagerAdapter
, Все отлично, за исключением того, что мне нужно отключить смахивание на моей второй вкладке, так как она использует горизонтальную прокрутку. Это нормально, если прокрутка отключена для всех вкладок, но было бы здорово, если бы она была отключена только для второй вкладки.
Похоже, для ViewPager я бы переопределить onInterceptTouchEvent()
метод, но это, кажется, не вариант для FragmentStatePagerAdapter
, Есть идеи, как это сделать? Благодарю.
Изменить: у меня есть только два фрагмента, поэтому, если FragmentStatePagerAdapter не подходит, я открыт для предложений.
Редактировать 2: проблема не смахивания была решена. Тем не менее, я все еще хотел бы знать, как предотвратить смахивание только для 2-го фрагмента.
1 ответ
Изменить onInterceptTouchEvent
а также onTouchEvent
чтобы исключить только тот индекс вкладки, который вы хотите:
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
switch(getCurrentItem()){
case 1:
return false;
default:
return super.onInterceptTouchEvent(event);
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch(getCurrentItem()){
case 1:
return false;
default:
return super.onTouchEvent(event);
}
}