Всем привет. Есть вопрос по анимации в android.
Использую Transition для анимированного перехода из RecyclerView в Фрагмент с деталями по карточке.
Анимация отрабатывается только при переходе в DetailFragment, а при нажатии на кнопку назад - резко переходит обратно(без анимации у выбранных объектов).
Нужно что бы отрабатывала та же анимации при переходе назад.
Подскажите что делать?
Код RecViewAdapter
@Override
public void onBindViewHolder(final RVTwoAdapter.ViewHolder holder, final int position) {
holder.textView.setText(elements.getElements().get(position).getName());
holder.photo_detail.setTransitionName(holder.transitionNamephoto_detail + position);
holder.cardViewDetail.setTransitionName(holder.transitionNameCardViewDetail + position);
holder.photo_detail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DetailsFragment detailsFragment = new DetailsFragment();
Bundle bundle = new Bundle();
bundle.putString("transitionNameForDetail", holder.photo_detail.getTransitionName());
bundle.putString("transitionNameForDetailCardView", holder.cardViewDetail.getTransitionName());
detailsFragment.setArguments(bundle);
detailsFragment.setSharedElementEnterTransition(new DetailsTransition());
detailsFragment.setSharedElementReturnTransition(new DetailsTransition());
fragmentManager.beginTransaction()
.replace(R.id.container, detailsFragment)
.addToBackStack(null)
.addSharedElement(holder.photo_detail, holder.photo_detail.getTransitionName())
.addSharedElement(holder.cardViewDetail, holder.cardViewDetail.getTransitionName())
.commit();
}
});
}
Код класса DetailFragment
public class DetailsFragment extends Fragment {
ImageView photo_detail;
CardView cardViewDetail;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
setSharedElementReturnTransition(new Fade(Fade.IN));
setExitTransition(new Fade(Fade.OUT));
View view = inflater.inflate(R.layout.fragment_deatail, container, false);
photo_detail = (ImageView) view.findViewById(R.id.photo_detail);
cardViewDetail = (CardView) view.findViewById(R.id.cardviewDetail);
photo_detail.setTransitionName(getArguments().getString("transitionNameForDetail"));
cardViewDetail.setTransitionName(getArguments().getString("transitionNameForDetailCardView"));
return view;
}
}
и собственно класс анимации DetailsTransition
public class DetailsTransition extends TransitionSet {
public DetailsTransition() {
setOrdering(ORDERING_TOGETHER);
addTransition(new ChangeBounds());
addTransition(new ChangeClipBounds());
addTransition(new ChangeImageTransform());
addTransition(new ChangeTransform());
setInterpolator(new FastOutSlowInInterpolator());
}
}