首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NavGraph deepLinking

NavGraph deepLinking
EN

Stack Overflow用户
提问于 2022-08-23 11:12:38
回答 1查看 44关注 0票数 0

我有这个导航图使用BottomNavigationView和两个片段,主页和搜索,都转到细节片段

MainGraph.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<navigation
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/nav_graph"
    app:startDestination="@+id/home">

    <include app:graph="@navigation/home"/>
    <include app:graph="@navigation/search"/>
</navigation>

HomeGraph

代码语言:javascript
复制
<navigation
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/home"
    app:startDestination="@+id/homeScreen">

    <fragment
        android:id="@+id/homeScreen">
        <action
            android:id="@+id/action_home_to_detail"
            app:destination="@id/detailScreen" />
        
    <include app:graph="@navigation/detail"/>

</navigation>

SearchGraph

代码语言:javascript
复制
<navigation
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/search"
    app:startDestination="@+id/searchScreen">

    <fragment
        android:id="@+id/searchScreen">
        <action
            android:id="@+id/action_search_to_detail"
            app:destination="@id/detailScreen" />
        
    <include app:graph="@navigation/detail"/>

</navigation>

DetailGraph

代码语言:javascript
复制
<navigation
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/detail"
    app:startDestination="@id/detailScreen">

    <argument
        android:name="detailID"
        android:defaultValue='""'
        app:argType="string" />

    <fragment
        android:id="@+id/detailScreen"
        tools:layout="@layout/fragment_detail">
       
        <argument
            android:name="detailID"
            android:defaultValue='""'
            app:argType="string" />
      
        <deepLink
            android:id="@+id/deepLinkDetail"
            app:uri="domain.com/detail?id={detailID}" />
    </fragment>
</navigation>

当我单击url时,detailScreen打开得很好,但是findNavController().previousBackStackEntry

现在,如果previousBackStackEntry为null,则重新启动应用程序。

代码语言:javascript
复制
    requireActivity().finish()
    requireActivity().startActivity(Intent(requireContext(), MainActivity::class.java))
    requireActivity().finishAffinity()

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-06 07:05:11

解决了,

我在清单中的SplashActivity声明中使用了意图筛选器,而不是MainActivity。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73457689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档