Глубокая ссылка и анимация с использованием компонента Android Navigation

Я пытаюсь реализовать поток забытых паролей. Я бы хотел обработать полученное электронное письмо, содержащее ссылку на веб-страницу с забытым паролем внутри приложения.

Используя компонент "Навигация", я создал глубокую ссылку, которая открывает правый фрагмент (тот, что с полем пароля). Так что я могу сменить пароль. Нажав назад, я возвращаюсь к экрану входа в систему, который является начальной точкой моего навигационного графика.

Все работает как положено, кроме анимации. Когда я создаю действие между пунктом назначения, я могу назначить анимацию входа / выхода / popenter / popexit, но с глубокой ссылкой я не создаю никаких действий, поэтому, когда я возвращаюсь, я достигаю ожидаемого фрагмента, но анимации нет. играл.

Я попытался немного поиграть с кодом, но безрезультатно, и я не могу найти какое-либо возможное решение в документации.

Я попытался создать несколько действий на моем навигационном графике (есть 4 разных варианта, щелкнув правой кнопкой мыши пункт назначения:

  • до места назначения (самый распространенный и тот, который я обычно использую)
  • себе (я не понимаю цели этого)
  • вернуться к источнику (я не понимаю цели этого)
  • Глобальный

Кажется, ни один из них не решает мою проблему. Идеи? Заранее спасибо.


person Simone Cascino    schedule 02.03.2020    source источник


Ответы (1)


Вы можете найти в 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()
person NataTse    schedule 16.04.2020