我有这个导航图使用BottomNavigationView和两个片段,主页和搜索,都转到细节片段
MainGraph.xml
<?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
<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
<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
<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,则重新启动应用程序。
requireActivity().finish()
requireActivity().startActivity(Intent(requireContext(), MainActivity::class.java))
requireActivity().finishAffinity()非常感谢
发布于 2022-09-06 07:05:11
解决了,
我在清单中的SplashActivity声明中使用了意图筛选器,而不是MainActivity。
https://stackoverflow.com/questions/73457689
复制相似问题