微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Android导航组件中将深层链接与动画配合使用

如何解决如何在Android导航组件中将深层链接与动画配合使用

重新启动应用程序时,我想导航到最后一页的片段。
例如)MainFragment> UserListFragment> UserDetailFragment
使用NavDeepLinkBuilder创建了深层链接,因为我需要动态创建深层链接

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

可以正常使用,但是没有动画。
如果我使用Uri的Deeplink,则可以使用NavController#navigate(Uri,NavOptions)。

是否可以在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" />

有关更多信息,您可以检查此navigation-architecture-component

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。