如何解决有没有更好的方法可以基于源片段在 Android 中导航?
我有片段S1、S2、P、D1和D2.
S1 和 S2 都有导致 P 的动作。当我在片段 P 中时,我可以导航到 D1 或 D2。
当我来自 S1 时,我想导航到 D1,但是当我来自 S2 时,我想去 D2 em>.
根据源片段进行导航的最佳方式是什么?。
我知道我可以为此使用参数,但这似乎是一个更基本的操作。我希望有一些更清晰、更快捷的解决方案(例如某些方法 getNameOfSource()
)。
解决方法
您可以通过从 Fragment Backstack 获取条目来完成此操作,尽管您首先需要确保向它们提供某种 TAG
。你可以简单地使用这样的东西。我会说使用参数仍然更好,但这超出了这个问题的范围
private fun getNameOfSource(): String? {
val fm = supportFragmentManager
val count = fm.backStackEntryCount
return fm.getBackStackEntryAt(count - 2).name
}
,
您可以使用以下代码获取片段标签:
public Fragment getSourceFragmentName() {
// you need to check this because you need at least 2 fragments at the backstack
if (getSupportFragmentManager().getBackStackEntryCount() < 2) {
return null;
}
String fragmentTag = getSupportFragmentManager().getBackStackEntryAt(getSupportFragmentManager().getBackStackEntryCount() - 2).getName();
return getSupportFragmentManager().findFragmentByTag(fragmentTag);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。