簡體   English   中英

如何在 Android 導航組件中使用 animation 的深層鏈接

[英]How can I use deep link with animation in Android Navigation Component

我想在重新啟動應用程序時導航到最后一頁片段。
例如)MainFragment > UserListFragment > UserDetailFragment
使用 NavDeepLinkBuilder 我創建了深層鏈接,因為我需要動態創建深層鏈接。

final PendingIntent pendingIntent = new NavDeepLinkBuilder(requireContext())
        .setGraph(R.navigation.nav_graph)
        .setDestination(R.id.userDetailFragment)
        .createPendingIntent();
pendingIntent.send();

它按預期工作,但沒有 animation。
如果我使用 Uri 的深度鏈接,我也許可以使用 NavController#navigate(Uri, NavOptions)。

有沒有辦法將 animation 與 NavDeepLinkBuilder 一起使用?

對不起,我的英語不好。
謝謝你。

如果您使用navigate ,您可以添加另一個參數作為NavOptions

public void navigate(@NonNull Uri deepLink, @Nullable NavOptions navOptions) {
    navigate(deepLink, navOptions, null);
}

然后以編程方式創建NavOptions作為

val navOptions =
    NavOptions.Builder()
        .setPopUpTo(
            R.id.nav_graph_main,
            false
        )
        .setEnterAnim(R.anim.slide_in_right)
        .setExitAnim(R.anim.slide_out_left)
        .setPopEnterAnim(R.anim.slide_in_left)
        .setPopExitAnim(R.anim.slide_out_right)
        .build()

或者您也可以在xml中創建操作,如下所示

<action
            android:id="@+id/action_notes_to_noteDetail"
            app:destination="@id/noteDetailFragment"
            app:enterAnim="@anim/enter_slide_down"
            app:exitAnim="@anim/exit_slide_down"
            app:popEnterAnim="@anim/pop_enter_slide_up"
            app:popExitAnim="@anim/pop_exit_slide_up" />

有關更多信息,您可以查看此導航架構組件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM