我想从ViewPager
迁移到ViewPager2
。 我现有的ViewPager
包含支持通过ActionMode
进行批量编辑的ListFragment
。 当用户从一个页面滑动到另一个页面时,我需要取消当前的批量编辑操作,以避免在查看不同页面时显示来自另一页的上下文标题。
使用ViewPager
,我可以在ListFragment
的FragmentPagerAdapter
中覆盖setPrimaryItem
,以知道何时替换了一个页面。 关键是,该函数以一个实际变为可见的子片段作为参数,我可以将其存储在适配器中,并在其被另一个片段替换时稍后用于取消批量编辑。
如何在ViewPager2
中执行相同的操作,即知道何时不再显示片段? 我尝试重写Fragment.onPause
,但这并不是我想要的---它会在手机屏幕关闭或方向更改时调用,而我不想在这些情况下取消批量编辑。 我还通过ViewPager2.registerOnPageChangeCallback
注册了回调,但这仅给我提供了新片段的索引,没有关于旧片段的信息,也没有提供片段本身。