首页 > 解决方案 > 导航架构片段重载问题

问题描述

我在图片库中使用导航架构,当我从片段 A 到 B 然后返回到 A 时,这 3 个方法被再次调用,这将导致我的画廊重新加载,我应该在片段中加载我的数据,所以当我从 B 回到 A 我的方法没有被调用?:

  1. OnCreateView
  2. OnViewCreated
  3. 恢复

步骤 A 到 B

标签: androidandroid-fragmentsnavigationandroid-jetpackandroid-architecture-navigation

解决方案


诀窍是不要在 onCreateView() 中再次膨胀视图。这将再次调用您的所有生命周期事件,但这将是您维护片段状态的方式。

这是谷歌安卓团队的 Ian Lake 建议的。这是参考

var binding: FragmentFeedsBinding? = null

   override fun onCreateView(
    inflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    if (binding == null)
        binding = FragmentFeedsBinding.inflate(inflater, container, false)
    return binding?.root
}

推荐阅读