首页 > 解决方案 > 导航到目的地时仅创建一个片段实例(android)

问题描述

我正在使用导航组件。导航时,如果片段已经存在于后台堆栈中,我不想创建新的片段实例,并弹出已经存在于前面的片段。

    findNavController().navigate(RequestTransferFragmentDirections.actionRequestTransferFragmentToBlankFragment())

向前寻找解决方案。

谢谢。

标签: androidandroid-studioandroid-fragmentsnavigationnavigationcontroller

解决方案


我遇到了同样的问题,但不幸的是,以前的解决方案对我不起作用,尽管它们应该解决这个问题。谢谢顺便说一句!:)

这对我有用,适应您的代码将是:

findNavController().navigate(
    RequestTransferFragmentDirections.actionRequestTransferFragmentToBlankFragment()),
    NavOptions.Builder().setLaunchSingleTop(true).build()
)

我在navigate()文档中看到我们可以传递options,因此通过传递NavOptions.Builder().setLaunchSingleTop(true).build()将创建此类片段的单个实例。


推荐阅读