我遇到了一个问题,即当深度链接到 2 级片段时,导航 UI 没有选择正确的底部导航视图项。
这就是我的意思:
- 选择fragment_reading_lists:选择了正确的底部导航项
- 从fragment_reading_lists -> fragment_discover_landing导航:选择了正确的底部导航项
- 到fragment_reading_lists的深层链接:选择了正确的底部导航项
- !!指向fragment_discover_landing的深层链接:未选择正确的底部导航项!!
当我深层链接到 fragment_discover_landing 时会发生什么?默认底部导航项被选中。
有没有办法通知底部导航适配器在这种情况下应该选择哪个项目?
这是我的导航图:
<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/mobile_navigation"
app:startDestination="@id/fragment_home">
<fragment
android:id="@+id/fragment_home"
android:name="com.my.app.fragments.HomeFragment"
android:label="@string/nav_home"
tools:layout="@layout/home_fragment">
<action
android:id="@+id/action_fragment_home_to_fragment_browse_categories"
app:destination="@id/fragment_browse_categories" />
</fragment>
<fragment
android:id="@+id/fragment_browse_categories"
android:name="com.my.app.fragments.BrowseCategoriesFragment"
android:label="@string/discover_default_header"
tools:layout="@layout/browse_categories_fragment" />
<fragment
android:id="@+id/fragment_reading_lists"
android:name="com.my.app.fragments.ReadingListHubFragment"
android:label="@string/nav_readinglists"
tools:layout="@layout/readinglists_landing">
<action
android:id="@+id/action_fragment_reading_lists_to_fragment_discover_landing"
app:destination="@id/fragment_discover_landing" />
</fragment>
<fragment
android:id="@+id/fragment_browse_library"
android:name="com.my.app.fragments.BrowseLibraryFragment"
android:label="@string/nav_library"
tools:layout="@layout/fragment_mylibrary_all" />
<fragment
android:id="@+id/fragment_downloads"
android:name="com.my.app.fragments.DownloadsFragment"
android:label="@string/nav_downloads"
tools:layout="@layout/fragment_mylibrary_offline" />
<fragment
android:id="@+id/fragment_discover_landing"
android:name="com.my.app.fragments.DiscoverLandingFragment"
android:label="@string/nav_discover_landing"
tools:layout="@layout/discover_landing_fragment">
<action
android:id="@+id/fragment_discover_landing_back_action"
app:popUpTo="@id/fragment_reading_lists"
app:popUpToInclusive="false" />
<argument
android:name="category"
android:defaultValue="Latest"
app:argType="string" />
<argument
android:name="searchText"
app:argType="string" />
<argument
android:name="searchMode"
android:defaultValue="false"
app:argType="boolean" />
<deepLink
android:id="@+id/discover_landing_category"
app:uri="myApp://discover/category?name={category}" />
</fragment>
</navigation>
旁注:这些片段都不是起始目的地。那是主页片段,它是底部导航中的 item1。fragment_reading_lists 是底部导航中 item2 的第一个片段