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

Sim*_*ino 5 animation android fragmenttransaction android-architecture-navigation android-deep-link

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

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

除了动画之外,一切都按预期进行。当我在目的地之间创建操作时,我可以分配进入/退出/popenter/popexit 动画,但通过深层链接,我不会创建任何操作,因此当我推回时,我到达了预期的片段,但没有动画玩过。

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

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

  • 到目的地(最常见也是我经常使用的)
  • 对自己(我不明白这样做的目的)
  • 返回源(我不明白这样做的目的)
  • 全球的

他们似乎都没有解决我的问题。有想法吗?提前致谢。

小智 10

您可以在 NavController 中找到

public void navigate(@NonNull Uri deepLink, @Nullable NavOptions navOptions) {
    navigate(deepLink, navOptions, null);
}
Run Code Online (Sandbox Code Playgroud)

在 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()
Run Code Online (Sandbox Code Playgroud)