У меня есть viewpager и внутри одного из фрагментов у меня есть два отдельных фрагмента, содержащих вертикальный и горизонтальный recyclerview соответственно.Отключить пейджинг ViewPager, когда дочерний recyclerview прокручивается до последнего элемента
Когда я просматриваю горизонтальный recyclerview до последнего элемента и пытаюсь прокрутить дальше, viewpager прокручивается на следующую страницу. Я не хочу, чтобы это произошло. Я хочу отключить подкачку viewpager, когда я пытаюсь перекрыть горизонтальный recyclerview.
Однако я не хочу отключать подкачку просмотра, когда я прокручиваю где-нибудь еще. Например, если бы я должен был использовать вертикальный recyclerview или любое пустое пространство внутри родительского фрагмента, это все равно должно заставить просмотрщик изменять страницы.
Я прочитал in this SO question, как отключить пейджинг зрителя. Также this SO question похож на то, что есть дочерний viewpager, однако у меня не было успеха, пытаясь воспроизвести его с помощью горизонтального recyclerview.
Вот некоторые структуры:
Обычай ViewPager, который позволяет мне отключить подкачку (взял из первых SO ссылка выше):
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;
} }
Для горизонтального recyclerview я установить ontouchlistener (аналогично второму SO ссылка выше):
horizontalRecyclerView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_MOVE:
customViewPager.setPagingEnabled(false);
break;
case MotionEvent.ACTION_UP:
customViewPager.setPagingEnabled(true);
break;
}
return false;
}
});
Дополнительные замечания: я заметил, что иногда, если я долго нажмите горизонтальный recyclerview, прежде чем я проведу, он не перейдет на следующую страницу viewpager. Однако, если я быстро проведу, просмотрщик перейдет на следующую страницу.
Кто-нибудь знает, как правильно это сделать?
Любая помощь приветствуется.
любое решение было найдено. Я ищу то же самое –