Android Старый фрагмент за новым фрагментом во время перехода не работает (высота) - PullRequest
0 голосов
/ 29 февраля 2020

Я ищу определенную c анимацию перехода фрагмента:

У меня есть текущий (старый) фрагмент A на экране, и я хочу перейти к (новому) фрагменту B. Фрагмент A должен скользить вниз и выявить фрагмент B, который находится за фрагментом A. К сожалению, я не нашел способа оживить этот переход.

Нижняя анимация фрагмента A работает нормально, но покрыта фрагментом B. Это видно при изменении альфа значение фрагмента B. Корректировка значения z с обновлением view.elevation фрагмента A работает для pop-анимации, но не для enter-animation.

Буду признателен за любую идею, которая может решить мою проблему , Установка высоты Фрагмента a на самое высокое, а Фрагмента B на самое низкое значение с плавающей точкой не работает. Это ошибка? Потому что настройка z-значения работает для анимации pop (exit).

Мой контроллер навигации:

<fragment
    android:id="@+id/fragmentA"
    android:name=".fragment_a"
    android:label="FragmentA"
    tools:layout="@layout/fragment_a">

    <action
            android:id="@+id/action_fragment_a_to_fragment_b"
            app:destination="@id/fragment_b"
            app:enterAnim="@anim/nothing"
            app:exitAnim="@anim/slide_out_bottom_animation"
            app:popEnterAnim="@anim/slide_in_bottom_animation"
            app:popExitAnim="@anim/nothing" />
</fragment>

Мои анимации:

Ничего:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
            android:duration="@android:integer/config_mediumAnimTime"
            android:fromAlpha="1.0"
            android:toAlpha="1.0"
            android:zAdjustment="bottom" />
</set>

slide_out_bottom_animation:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
        android:shareInterpolator="false">
    <translate
            android:duration="@android:integer/config_mediumAnimTime"
            android:fromXDelta="0%"
            android:fromYDelta="0%"
            android:toXDelta="0%"
            android:toYDelta="100%"
            android:interpolator="@android:anim/accelerate_interpolator"
            android:zAdjustment="top"/>
</set>

Настройка высоты фрагмента A

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        view.elevation = Float.MAX_VALUE
    }

Спасибо

Марсель

...