【发布时间】:2019-06-14 01:30:23
【问题描述】:
很高兴 Google 发布了ViewPager2,它基于 RecyclerView 解决了旧 ViewPager 存在的很多问题。
我很快将旧的 ViewPager 代码替换为 ViewPager2:
在 xml 中用 ViewPager2 替换 ViewPager
将
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 有什么关系吗?
【问题讨论】:
标签: android android-recyclerview android-viewpager android-touch-event android-viewpager2