首页 > 解决方案 > 使用多个回栈时,片段内的片段不持久

问题描述

所以,我使用这种方法来支持我的应用程序的多个回栈,谷歌示例代码。此代码应该使底部导航组件保留片段和其中的所有内容(滚动状态等)。所以问题是当我有片段时,我在片段中以编程方式创建它,让我使用谷歌示例代码来创建一个示例。我将排行榜选项卡目标更改为我的自定义板片段。

class BoardFragment : Fragment() {

    private lateinit var leaderboardFragment: Leaderboard

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                              savedInstanceState: Bundle?): View? {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_board, container, false)

    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        leaderboardFragment = Leaderboard.newInstance()
        activity?.supportFragmentManager?.beginTransaction()
                ?.replace(R.id.frag_container, leaderboardFragment)
                ?.commit()
    }
}

在 onViewCreated 方法中,我创建 Leaderboard 片段并将我在 Board 片段布局中创建的片段容器替换为这个新创建的 Leaderboard 片段。结果与原始代码相同,但问题是当我们转到其他菜单并返回它时,Leaderboard 片段显然没有保留,因为片段在 onViewCreated 中再次创建。那么,如何持久化片段呢?

标签: androidandroid-fragmentsfragment-backstack

解决方案


推荐阅读