Существуют ли атрибуты стиля XML, которые можно использовать для изменения перехода по умолчанию компонента навигации? - PullRequest
0 голосов
/ 09 апреля 2020

Переходы по умолчанию от Навигационного Компонента к переходу между двумя фрагментами - постепенное исчезновение и постепенное исчезновение. Это можно увидеть в исходном коде 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 , но оно не сработало.

...