В настоящее время я пытаюсь сделать 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());