我有一个包含 5 个片段的活动。 我在同一组件的 onClick 上使用不同的功能在不同的片段内。 由于 ViewPager 的片段预加载,将执行下一个片段的功能而不是当前片段。 我该怎么办?
没有办法避免它,因为视图寻呼机的最小偏移量为 1。
因此,我建议您使用另一种方式来存档结果:
想法 1:如果您使用第二个参数作为FragmentStatePagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT
FragmentStatePagerAdapter
则意味着您的视图寻呼机中只有一个片段将处于onResume
状态。因此,您可以在onResume
方法中启动所有网络/副作用作业。
想法2:当你不需要向左/向右滑动效果时,为什么使用视图寻呼机?可能你走错了路。例如,您可以仅使用帧布局,然后在用户以预期方式交互时使用片段管理器附加和分离片段。我建议你更好地看待FragmentTransaction
.这是一个链接。
请随时向我询问其中一种方法。