繁体   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