Я очень рад, что Google выпустил ViewPager2 , который построен на RecyclerView для решения многих проблем, которые есть у старого ViewPager.
Я быстро заменил свои старые коды ViewPager на ViewPager2:
Заменить ViewPager на ViewPager2 в формате xml
Заменить FragmentPagerAdapter(FragmentManager)
на FragmentStateAdapter(Fragment)
Настройка ViewPager выглядит следующим образом:
viewPager.adapter = fragmentAdapter
val mediator = TabLayoutMediator(tabLayout, viewPager, true) { tab, position ->
tab.text = fragmentAdapter.tabNames[position]
}
mediator.attach()
Других изменений не было.
Проблема
После внесения вышеуказанного изменения я понял,проблема -
Теперь мой ViewPager - это обычный горизонтальный пейджер, и каждый фрагмент в моем fragmentAdapter
имеет вертикальную RecyclerView
.
Я заметил, что когда-либо положение прокруткииз RecyclerView равен 0, мои элементы в этом RecyclerView не могут получать ни щелчки, ни события длительного щелчка, но его можно прокручивать.После прокрутки он может снова получать щелчки. *
Зная, что ViewPager2
также является RecyclerView
, есть ли какое-то отношение к вложенному RecyclerView?