【问题标题】:Android JetPack Navigation : How to open a fragment from an activity not associated with it?Android JetPack 导航:如何从与其不关联的活动中打开片段?
【发布时间】:2018-12-20 03:04:57
【问题描述】:

场景:

MainActivity.kt : activity_main.xml 包含 my_nav_host_fragment

mobile_navigation.xml first_frag_dest 是 startDestination,也有 second_frag_dest,分别具有 FirstFragment.ktSecondFragment.kt 的类。

我已经设置了底部导航,以便使用 Android Jetpack 导航组件在两个片段之间切换。

当第一次打开第二个片段时,如果 FirbaseUser 为空,则会启动一个为 GoogleSignInusing Firebase 配置的欢迎活动。

WelcomeActivity.java 我有一个函数updateUI(user: FirebaseUser) 来更新用户界面。

现在,我应该在 updateUI 函数中编写什么代码,以便将我重定向回第二个片段。

请告诉如何使用 JetPack Navigation 组件。

注意:导航原则说只有一个活动必须存在,但由于 Firebase 的限制,我不得不使用 GoogleSignIn 的活动。

【问题讨论】:

  • 所以你的第一个活动已经在SecondFragment 上,并启动你的WelcomeActivity。而你只想返回SecondFragment
  • @ianhanniballake 是的,完全正确。

标签: android android-fragments android-architecture-components android-jetpack android-architecture-navigation


【解决方案1】:

如果你想关闭你的WelcomeActivity并返回到它下面的活动,让你的updateUI方法调用finish()

当您的活动完成并应该关闭时调用它

【讨论】:

  • 有没有办法使用喷气背包导航?
  • 不,Navigation 专注于 Single Activity model,没有完成活动的概念。
  • 但在我的情况下,我需要进行其他活动,所以在这种情况下我应该怎么做。
  • 致电finish()
  • @ianhanniballake ActivityCompat.finishAfterTransition(..) 不是更合适吗?
猜你喜欢
  • 2021-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多