使用Android导航组件的深层链接和动画

时间:2020-03-02 17:14:32

标签: android animation android-architecture-navigation fragmenttransaction android-deep-link

我正在尝试实现一个忘记密码的流程。我想做的是在应用程序内部处理收到的电子邮件,其中包含指向忘记密码网页的链接。

使用导航组件,我创建了一个深层链接,该链接打开了正确的片段(带有密码字段的片段)。这样我就可以更改密码了。单击返回,我将返回登录屏幕,这是我的导航图的起点。

除动画外,其他所有操作均按预期进行。当我在目标之间创建动作时,我可以分配enter / exit / popenter / popexit动画,但是通过深层链接,我不会创建任何动作,因此当我回推时,我达到了预期的片段,但是没有动画玩过。

我尝试使用一些代码,但没有结果,并且在文档中找不到任何可能的解决方案。

我尝试在导航图中创建一些操作(右键单击目标位置有4个不同的选项:

  • 去目的地(最常见也是我通常使用的那个目的地)
  • 为了自我(我不明白这个目的)
  • 返回源代码(我不明白这个目的)
  • 全局

他们似乎都无法解决我的问题。有想法吗? 预先感谢。

1 个答案:

答案 0 :(得分:2)

您可以在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()
相关问题