Ich habe eine Aktivität mit View-Pager mit drei Fragmente. Ich startete ein weiteres Top-Fragment mit einem View-Pager mit Fragmenten darin. Alles ist in Ordnung und es gelingt mir, all dies zu tun. Aber wenn ich addSharedElement für den gemeinsamen Übergang von Fragment zu Fragment verwende, passiert überhaupt keine Animation. Ich ersetze Fragment mit neuem Top-Fragmente wie unten:Shared-Transition-Fragment zu Fragment funktioniert nicht
View transitionView = view.findViewById(R.id.photo_image_view);
fragmentManager
.beginTransaction()
.replace(R.id.fragment_container, fragment)
.addToBackStack(null)
.addSharedElement(transitionView, ViewCompat.getTransitionName(transitionView))
.commit();
und in meinem nächsten Fragmente onCreate ich tat:
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getActivity() != null) {
getActivity().supportPostponeEnterTransition();
}
}
dann in onCreateView ich ein anderes viewpager mit Fragmente implementieren. Ansicht Pager Nach der Implementierung, Das Fragment ich möchte ich zeigen, tat
desiredFragmentToShow.setSharedElementEnterTransition(TransitionInflater.from(
getActivity()).inflateTransition(R.transition.change_image_trans));
desiredFragmentToShow.setEnterTransition(TransitionInflater.from(
getActivity()).inflateTransition(android.R.transition.fade));
und in desiredFragmentToShow in onViewCreated ich getan habe:
activity.supportStartPostponedEnterTransition();
aber es gibt überhaupt keine Animation. Bitte helfen Sie, wenn ein Körper eine Idee hat.
Also, wenn Sie geteilte Elemente zwischen Fragmenten verwenden, warum erhalten Sie die Aktivität beteiligt? Zum Beispiel rufen Sie 'getActivity() auf. SupportPostponeEnterTransition(); 'sollte' postponeEnterTransition();' etc sein. –
@Mark Keen Ich habe 'postponeEnterTransition();' in 'onCreate()' des nächsten Containerfragments des Ansichtspagers und 'startPostponedEnterTransition();' Im Fragment-Innenansicht-Pager wird das Standbild-in-Sicht-Pager-Fragment überhaupt nicht animiert. –
@WakilAhmad haben Sie das Problem erfolgreich gelöst? –