【发布时间】:2020-08-30 10:37:12
【问题描述】:
我已经使用ViewPager2、BottomNavigationView 和 Fragments 设置了我的活动布局。在我ViewPager2 的第一个片段中包含一个ImageSlider。
当我滚动 ImageSlider 时,整个片段(ViewPager2)滚动到第二个片段。为什么会这样?。
然后我改为普通ViewPager 而不是ViewPager2 和FragmentPagerAdapter 而不是FragmentStateAdapter,它工作得很好,不幸的是FragmentPagerAdapter 已弃用。?
布局
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
活动
val adapter = ViewPagerAdapter(this)
viewPager.adapter = adapter
ViewPagerAdapter
const val FRAGMENT_COUNT = 4;
class ViewPagerAdapter(activity: FragmentActivity): FragmentStateAdapter(activity){
override fun getItemCount() = FRAGMENT_COUNT
override fun createFragment(position: Int): Fragment {
return when(position) {
0 -> HomeFragment()
1 -> DepartmentFragment()
2 -> ConnectFragment()
3 -> SocialFragment()
else -> HomeFragment()
}
}
}
【问题讨论】:
-
您可以尝试禁用
ViewPager2的内部RecyclerView的嵌套滚动。Here 可能会有所帮助
标签: android android-fragments fragmentstatepageradapter android-viewpager2 fragmentstateadapter