Можно ли реализовать ViewPager2 внутри другого ViewPager2?

Макет, который я сейчас использую, состоит из TabLayout с Viewpager2, я пытаюсь реализовать еще один ViewPager2 для отображения нескольких изображений на одной из вкладок. Но проблема, с которой я столкнулся, заключается в том, что когда я смахиваю, я могу переключаться только между вкладками, а не переключать изображения. Любая помощь будет принята с благодарностью, спасибо!


person Noxagon    schedule 29.07.2020    source источник
comment
Эта ссылка поможет вам   -  person dennisrufigill    schedule 29.07.2020


Ответы (1)


Нашел решение, просто добавьте этот фрагмент кода в свою программу.

private void reduceDragSensitivity() {
    try {
        Field ff = ViewPager2.class.getDeclaredField("mRecyclerView") ;
        ff.setAccessible(true);
        RecyclerView recyclerView =  (RecyclerView) ff.get(viewPager);
        Field touchSlopField = RecyclerView.class.getDeclaredField("mTouchSlop") ;
        touchSlopField.setAccessible(true);
        int touchSlop = (int) touchSlopField.get(recyclerView);
        touchSlopField.set(recyclerView,touchSlop*4);
    } catch (NoSuchFieldException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }
}

Не забудьте заменить viewPager своим именем, если хотите узнать о нем больше: https://medium.com/@al.e.shevelev/how-to-reduce-scroll-sensitive-of-viewpager2-widget-87797ad02414

person Noxagon    schedule 29.07.2020
comment
Я добавил это в окно просмотра сверху и во внутренний. у меня не работает. - person Evgeny GooDi; 28.10.2020