使用Android Navigation组件实现深度链接和动画

5
我正在尝试实现忘记密码流程。我想要做的是在应用内处理收到的包含忘记密码网页链接的电子邮件。
使用导航组件,我创建了一个深度链接,打开正确的片段(带有密码字段的那个)。因此,我能够更改密码。单击返回按钮,我返回登录屏幕,这是我的导航图的起点。
除了动画效果外,一切都按预期工作。当我在目标之间创建操作时,我可以分配进入/退出/弹出进入/弹出退出动画,但使用深度链接时,我没有创建任何操作,因此当我向后推送时,我到达了预期的片段,但没有播放任何动画。
我尝试过调整代码,但没有结果,并且我在文档中找不到任何可能的解决方案。
我尝试在我的导航图中创建一些操作 (右键点击目标有4个不同的选项):
- 到目标 (最常见且我通常使用的) - 到自己 (我不理解这个选项的目的) - 返回源 (我不理解这个选项的目的) - 全局
但它们似乎都没有解决我的问题。有什么建议吗?谢谢。
1个回答

9
您可以在NavController中找到。
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()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接