Анимация перехода между общими элементами фрагмента в окне просмотра - PullRequest
0 голосов
/ 29 апреля 2020

Мое основное занятие состоит из табуляции с 3 вкладками вверху и окна просмотра.

В этом окне просмотра у меня есть 3 разных фрагмента.

В одном из фрагментов у меня есть обзор переработчика с несколькими элементами.

Когда я щелкаю изображение из элемента просмотра переработчика, я откройте новый фрагмент с более подробной информацией.

Проблема в том, что анимация перехода между общими элементами не работает. Фрагмент сведений просто всплывает без анимации.

Это код из onclicklistener в адаптере утилита просмотра вBindViewHolder:

holder.ivPost.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Bundle bundle = new Bundle();
                holder.ivPost.setTransitionName("transition" + position);
                imageTransitionName = holder.ivPost.getTransitionName();

                bundle.putInt("postimage", modelFeed.getPostpic());
                bundle.putString("transitionName", imageTransitionName);

                Transition changeTransform = TransitionInflater.from(context).
                        inflateTransition(R.transition.change_image_transform);
                Transition noTransition = TransitionInflater.from(context).
                        inflateTransition(android.R.transition.no_transition);

                Fragment fragment1 = Activity_Feed.newInstance();

                fragment1.setSharedElementReturnTransition(changeTransform);
                fragment1.setExitTransition(noTransition);

                FragmentManager manager = ((AppCompatActivity)context).getSupportFragmentManager();
                FragmentTransaction transaction = manager.beginTransaction();

                Fragment fragment2 = Post.newInstance();
                fragment2.setSharedElementEnterTransition(changeTransform);
                fragment2.setEnterTransition(noTransition);
                fragment2.setArguments(bundle);

                transaction.addToBackStack(null).addSharedElement(holder.ivPost,imageTransitionName).replace(R.id.fram1, fragment2).commit();
            }

        });

R.id.fram1 - это идентификатор макета кадра первый фрагмент.

Во втором фрагменте я получаю следующие аргументы:

        Bundle bundle = getArguments();

        String transitionName = bundle.getString("transitionName");
        int postimage = bundle.getInt("postimage");

        ImageView ivPost = v.findViewById(R.id.postimg);
        ivPost.setTransitionName(transitionName);
        ivPost.setImageResource(postimage);

Спасибо за помощь!

...