WindowExitTransition всегда затухает представления - PullRequest
0 голосов
/ 16 февраля 2019

В настоящее время я пытаюсь сделать SharedElementTransition между двумя активностями, который работает в большинстве случаев отлично, за исключением одной вещи.ExitAnimation первого действия состоит из двух переходов между слайдами: activity_main_transition.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <transitionSet xmlns:android="http://schemas.android.com/apk/res/android"
    android:transitionOrdering="together">

    <slide android:slideEdge="bottom" android:duration="@integer/anim_duration">
        <targets>
            <target android:targetId="@+id/bottom_appbar"/>
            <target android:targetId="@+id/fab"/>
        </targets>
    </slide>

    <slide android:slideEdge="top" android:duration="@integer/anim_duration">
        <targets>
            <target android:targetId="@+id/pager"/>
        </targets>
    </slide>

</transitionSet>

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

styles.xml:

    <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
        ...
        <item name="android:windowContentTransitions">true</item>
        <item name="android:windowExitTransition">@transition/activity_main</item>
        <item name="android:windowEnterTransition">@transition/activity_main</item>

    </style>

Manifest.xml:

...
<activity
        android:name=".ui.activitys.MainActivity"
        android:theme="@style/AppTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
...

Как начать новое действие:

TextView sharedText = v.findViewById(R.id.txt_name);
String transition = ViewCompat.getTransitionName(sharedText);
ActivityOptions options = ActivityOptions.
        makeSceneTransitionAnimation(getActivity(), sharedText, transition);
Intent i = new Intent(getContext(), ActivityCustomer.class);
i.putExtra("id", item.getId());
i.putExtra("title", item.getName1()+" "+item.getName2());
i.putExtra(Constants.EXTRA_TRANSITION_NAME, transition);
Transition t =  getActivity().getWindow().getExitTransition();
startActivity(i, options.toBundle());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...