@suda911

Transition из Fragment с RecyclerView в DetailFragment?

Всем привет. Есть вопрос по анимации в 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());
    }
}
  • Вопрос задан
  • 496 просмотров
Пригласить эксперта
Ответы на вопрос 1
@davidnum95
Клик по кнопке назад как обрабатывается?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы