Переходы по умолчанию от Навигационного Компонента к переходу между двумя фрагментами - постепенное исчезновение и постепенное исчезновение. Это можно увидеть в исходном коде Navigation Component . Вот одна из постепенных анимаций в файле nav_default_enter_anim.xml
.
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:interpolator="@android:anim/linear_interpolator"
android:duration="@integer/config_navAnimTime"
android:fromAlpha="0.0"
android:toAlpha="1.0"/>
</set>
Чтобы изменить этот переход по умолчанию, я могу создать файл XML с точно таким же именем и добавить туда свой собственный переход , Это изменит переход по умолчанию. Я также обнаружил, что есть attrs
для NavAction
.
<declare-styleable name="NavAction">
<attr name="android:id" />
<attr name="destination" format="reference" />
<attr name="launchSingleTop" format="boolean" />
<attr name="popUpTo" format="reference" />
<attr name="popUpToInclusive" format="boolean" />
<attr name="enterAnim" format="reference" />
<attr name="exitAnim" format="reference" />
<attr name="popEnterAnim" format="reference" />
<attr name="popExitAnim" format="reference" />
</declare-styleable>
В результате у меня есть ощущение, что указанный ресурс (оригинал nav_default_enter_anim.xml
) объявлен как пользовательский стиль перехода в XML где-то. Итак:
- Если моя догадка верна, есть ли имя атрибута, которое мы можем изменить в нашем собственном файле
style.xml
, чтобы изменить переходы по умолчанию (и, возможно, также имена атрибутов для функции синхронизации и продолжительности )? (Например, мы можем изменить значение атрибута colorPrimary
в нашей теме.) - Если моя догадка равна false, то объявлено ли пользовательское значение по умолчанию непосредственно в коде Java?
- Если он объявлен непосредственно в коде Java, правильно ли считать, что мы можем переопределить переход по умолчанию, только создав точно такое же имя файла и настроив там переход?
Я пытался использовать решение № 2 из ответа на этот другой вопрос SO , но оно не сработало.