灯塔@kuaidao
2022-03-29 16:48
采纳率: 50%
浏览 61

导航组件Navigation,从一个Activity 跳转到Fragment

问题遇到的现象和发生背景
应用内如何通过Intent, 跳转到Navigation 某一个指定的子Fragment

<fragment
    android:id="@+id/fragment_accountSafe"
    android:name="com.locojoy.restart.usercenter.activity.fragment.AccountSafeFragment"
    android:label="@string/ucenter_accountsafe"
    tools:layout="@layout/fragment_account_safe">

    <action
        android:id="@+id/ucenter_action_fragment_accountsafe_to_fragment_logoutprotocol"
        app:destination="@id/fragment_logoutprotocol"
        app:enterAnim="@anim/slide_in_right"
        app:exitAnim="@anim/slide_out_left"
        app:popEnterAnim="@anim/slide_in_left"
        app:popExitAnim="@anim/slide_out_right" />

</fragment>
<fragment
    android:id="@+id/fragment_logoutprotocol"
    android:name="com.locojoy.restart.usercenter.activity.fragment.LogoutProtocolFragment"
    android:label="@string/ucenter_applykonw"
    tools:layout="@layout/fragment_logout_protocol">

    <action
        android:id="@+id/ucenter_action_fragment_logoutprotocol_to_logout_account_screen"
        app:destination="@id/logout_account_screen"
        app:enterAnim="@anim/slide_in_right"
        app:exitAnim="@anim/slide_out_left"
        app:popEnterAnim="@anim/slide_in_left"
        app:popExitAnim="@anim/slide_out_right" />
</fragment>

<fragment
    android:id="@+id/logout_account_screen"
    android:name="com.locojoy.restart.usercenter.activity.fragment.LogoutFragment"
    android:label="@string/ucenter_applyreason"
    tools:layout="@layout/fragment_logout">

    <deepLink
        android:id="@+id/ucenter_deeplink"
        app:uri="ucenter://logout" />
</fragment>
运行结果及报错内容

我的解答思路和尝试过的方法
1.官方文档介绍了使用显式PendIntent或者 隐式Intent进行应用外deepLink 方式跳转到应用内.显然这种方式适用应用外跳转!
2.尝试使用 NavDeepLinkBuilder 构建一个Intent,但是api只提供构建 PendingIntent方式。

可行方案:通过主Navigator 进行二次中转到某个子Fragment这种方式虽然可以,显的很Low。
我想要达到的结果

直接导航到具体某一个子Fragment内。

直接跳转到 LogoutFragment 子Fragment

1条回答 默认 最新

相关推荐 更多相似问题