Модальная анимация с переходом к навигации на реактивном ранце

Как создать модальную анимацию перехода?

Я использую граф навигации для реактивного ранца, где вы можете привязать анимацию перехода. Но поведение по умолчанию выглядит очень странно. Позвольте мне объяснить почему.

Если вы привязываете анимацию входа без анимации выхода. Ваш выходной фрагмент исчезнет в начале анимации. Что выглядит не очень хорошо.

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

Есть ли способ создать красивую модальную анимацию для перехода с реактивного ранца?

Это моя анимация слайда вверх.

<set xmlns:android = "http://schemas.android.com/apk/res/android"
android:interpolator = "@android:anim/decelerate_interpolator"
android:fillAfter = "true">
<translate
    android:duration = "@android:integer/config_mediumAnimTime"
    android:fromYDelta = "100%"
    android:toYDelta = "0%">
</translate>
</set>

Какой тип анимации входа и выхода. Вы хотите?

Aditya 08.01.2019 08:23

@HeisenBrg Анимация входа должна скользить снизу вверх, а анимация выхода не должна делать ничего. Аналогично модальной анимации iOS.

Luciano 08.01.2019 09:16

Можете поделиться кодом? В частности, будет оценена та часть, где вы устанавливаете переходы к фрагментам :)

miguelarc 09.01.2019 10:48

@miguelarc я не устанавливаю анимацию в коде. Я привязываю свою анимацию, устанавливая app: enterAnim и app: exitAnim в моем действии navGraph. И чтобы вызвать переход, я вызываю findNavController (). Navigate (R.id.my_action_id, bundle)

Luciano 09.01.2019 14:52

Поправьте меня, если я ошибаюсь, но, как я понимаю из того, что вы описали, FragmentB помещается поверх FragmentA, но под панелью toold, что делает его двумя панелями инструментов. Это правильно? Вы, вероятно, устанавливаете действие в дочернем ресурсе. Возможно, вы можете установить действие для родительского, которое добавляет панель инструментов и фрагмент. Трудно получить точный ответ, так как у нас нет кода, на который можно было бы смотреть :) Проверьте это и посмотрите, поможет ли это.

miguelarc 09.01.2019 15:44

Спасибо за ваш ответ, я не совсем уверен, какую часть моего кода вы хотели бы увидеть. Потому что вся привязка выполняется одним единственным вкладышем в моем xml, как я грустил в своем последнем комментарии. У каждого фрагмента есть своя панель инструментов. Это не проблема. Проблема в том, что фрагмент, к которому я перехожу, скользит по выходному фрагменту, но под старой панелью инструментов, пока анимация не будет завершена. По окончании анимации старый фрагмент, включая старую панель инструментов, исчезнет. Для получения дополнительной информации о реактивном ранце: developer.android.com/topic/libraries/architecture/navigatio‌ n /…

Luciano 09.01.2019 16:26

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

Luke 17.04.2019 16:12
8
7
727
0

Другие вопросы по теме