【发布时间】:2021-08-23 07:10:11
【问题描述】:
我正在尝试使用导航组件导航到另一个活动(登录)。
目前Activity_1 拥有navGraph1 和Activity_2 拥有navGraph2。
我在navGraph1 中为Activity_2 设置了一个目的地。当我导航时,我得到一个空白屏幕,尽管 Activity_2 有一个导航图,其中包含另一个片段的起始目的地。
onCreate 没有被调用,或者至少没有被我在Activity_2 中的断点击中。
当我将navGraph2 嵌套在navGraph1 中时,我可以导航到navGraph2 中的起始目标片段。 navGraph2 中的此起始目的地位于 compose 中。 Activity_1 似乎绕过 Activity_2 并直接托管片段。但是,我希望 Activity_2 托管它,因为导航到 Activity_2 可以显示更像一个弹出模式,隐藏底部导航栏之类的东西。
我不确定这里发生了什么。
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph"
app:startDestination="@id/startFragment1">
<activity
android:id="@+id/Activity2"
android:name="com.example.Activity2"
android:label="Activity2" />
</navigation>
// in Activity 1
navController.navigate(R.id.activity2)
活动 2
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/nav_graph_2"
app:startDestination="@id/startFragment2">
<fragment
android:id="@+id/startFragment2"
android:name="com.example.StartFragment2"
android:label="StartFragment2" />
</navigation>
class Activity2 : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
setContentView(R.layout.activity2)
}
}
// Layout activity 2
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.fragment.app.FragmentContainerView
android:id="@+id/fragmentContainerView"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_graph_2" />
</androidx.constraintlayout.widget.ConstraintLayout>
【问题讨论】:
-
您能否发布您的代码以及
navGraph1和navGraph2文件 -
我不允许发布这些文件,但我已经编辑了帖子并删减了代码。
标签: android android-jetpack android-architecture-navigation