Android viewpager2 + fragment , viewpager2 为纵向滚动, 每个fragment 有 recycleView , 当recycleview 滚动到底部后再 滑动,则需要 滑动viewpager2
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
class MyFragment : Fragment() {
private lateinit var recyclerView: RecyclerView
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.fragment_recyclerview, container, false)
recyclerView = view.findViewById(R.id.recyclerView)
recyclerView.adapter = MyAdapter() // 你的Adapter实例
recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
val layoutManager = recyclerView.layoutManager as LinearLayoutManager
if (!layoutManager.findLastCompletelyVisibleItemPositions(null).isEmpty()) {
// 如果已经滑动到RecyclerView底部
if (layoutManager.findLastCompletelyVisibleItemPosition() == recyclerView.adapter!!.itemCount - 1) {
// 判断是否可以向下滑动(确保不在ViewPager2的最底部)
val viewPager = requireActivity().findViewById<ViewPager2>(R.id.viewPager2)
if (viewPager.canScrollVertically(1)) {
// 尝试传递滚动给ViewPager2
viewPager.scrollBy(0, dy)
}
}
}
}
})
return view
}
}

1380

被折叠的 条评论
为什么被折叠?



