【问题标题】:return to another fragment from sub activity从子活动返回另一个片段
【发布时间】:2021-08-24 08:12:42
【问题描述】:

我的应用有 3 个片段:fragment-a、fragment-b、fragment-c,由 NavController 管理。 当用户在 fragment-a 上工作时,它会创建一个子活动-e。

val subActivity = Intent(activity, Activity-e::class.java)
    startActivity(subActivity)

通常情况下,用户完成activity-e上的东西后,它会返回到它的父级:fragment-a。

val parentIntent = NavUtils.getParentActivityIntent(this)
    parentIntent!!.flags =
                Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT or Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
    startActivity(parentIntent)
    finish()

但是,在某些情况下,它应该去fragment-b。 是否有可能从 sub activity-e 返回到 fragment-b ? 该怎么做?

【问题讨论】:

    标签: android kotlin android-fragments


    【解决方案1】:

    是的,这是可能的。但我不会说它是“退货”。更有可能是导航到fragment-b

    尽量避免在导航控制器中使用Intent,因为您现在正在使用导航组件。

    【讨论】:

    • Fragments 包含在 Activity 中。所以你需要做的就是使用navController导航到那个activity-e。
    • 我已将我的旧方式(intent 和 startactivity)更改为导航控制器的方式。在大多数情况下似乎没问题。但是,当片段调用第 1 层活动,然后第 1 层活动调用第 2 层活动时,我遇到了问题。我无法在 layer2 活动中导航到正确的片段。
    • 如果你从 later2 活动导航到 layer1 活动,layer1 的 navController 将被重新创建,startDestination 将是第一个显示的地方。这里有一个小技巧,当你从 layer2 活动导航回来时,你可以设置一个条件,让 layer1 的 navController 直接转到正确的片段。
    猜你喜欢
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多