当前位置: 首页 > 知识库问答 >
问题:

无法使用导航组件导航到其他活动

习海
2023-03-14

我正在尝试使用导航组件导航到另一个活动(登录)。

目前,活动1具有导航图1,活动2具有导航图2。

我在navGraph1中为Activity_2添加了一个目标。当我导航时,我得到一个空白屏幕,尽管Activity_2有一个导航图,其中包含另一个片段的起始目标。

onCreate没有被调用,或者至少没有被我在Activity_2中的断点击中。

当我在navGraph1中嵌套navGraph2时,我可以导航到navGraph2中的起始目标片段。navGraph2中的这个起始目的地位于compose中<代码>活动1似乎绕过了活动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>

共有1个答案

卓云
2023-03-14

找到了解决方案。活动2覆盖了错误的onCreate()。它应该是onCreate(),只有savedInstanceState参数

 类似资料:
  • 我正在我的应用程序中使用导航组件。我试图在单击操作栏图标时导航到片段,但它不起作用。以下是我的代码: 操作菜单。xml nav_主机。xml 主要活动。Java语言 这种方法不起作用-我如何导航?

  • 我正在尝试创建一个导航抽屉活动,这样我就可以扩展该活动,并按照这个问题链接中给出的答案在所有活动中使用菜单,但我的测试应用程序总是崩溃,下面是我的代码: BaseActivity.java

  • 我正在一个新的Android应用程序上使用导航组件,但我不知道怎么做 首先,我有我的主活动,我有main_navigation_graph 主要活动 NavHostFragment main_navigation_graph里面有3个碎片 这里一切都很好。问题是当我到达最后一个片段时,因为在这个片段上,我想根据BottomNavigationView输入(暂时)显示一些子片段(在新的NavHost

  • 我一直在遵循导航架构组件中的文档,以了解这个新的导航系统是如何工作的。 要从一个屏幕到另一个屏幕进行/返回,您需要一个实现接口的组件。 NavHost是一个空视图,当用户在应用程序中导航时,目的地会随之交换。 但是,似乎目前只有片段实现了< code>NavHost 导航架构组件的默认NavHost实现是NavHostFragment。 所以,我的问题是: > < li> 即使我有一个可以用< c

  • 导航组件说明 组件 说明 最低版本 navigator 页面链接 1.0.0 functional-page-navigator 用于跳转插件功能页 不支持 navigator 属性 类型 默认值 必填 说明 最低版本 url string 否 当前小程序内的跳转链接 open-type navigate 否 跳转方式 hover-class string navigator-hover 否 指定