首页 > 解决方案 > 有没有更好的基于源代码片段在 Android 中导航的方法?

问题描述

碎片

我有片段 S1S2PD1D2

S1S2都有导致P的动作。当我在片段P中时,我可以导航到D1D2
当我来自S1时,我想导航到D1,但是当我来自S2时,我想去D2

基于源片段进行导航的最佳方法是什么?.

我知道我可以为此使用参数,但这似乎是一个更基本的操作。我希望有一些更清晰和更快的解决方案(例如 some method getNameOfSource())。

标签: androidandroid-fragmentsandroid-navigation

解决方案


您可以通过从 Fragment Backstack 获取条目来做到这一点,尽管您需要确保首先TAG向它们提供某种形式。你可以简单地使用这样的东西。我会说使用参数仍然更好,但这超出了这个问题的范围

private fun getNameOfSource(): String? {
        val fm = supportFragmentManager
        val count = fm.backStackEntryCount
        return fm.getBackStackEntryAt(count - 2).name
    }

推荐阅读