я учусь использовать анимацию sharedelements с компонентом навигации.
Это работает, когда я вызываю новый фрагмент, анимирую объекты, но не работает, когда я возвращаюсь sh.
мой код с точки зрения переработчика
CardView cardviewBackgroundImage = view.findViewById(R.id.card_main_image);
TextView storeName = view.findViewById(R.id.store_name);
Map<View, String> transitionObjects = new HashMap<View, String>();
transitionObjects.put(cardviewBackgroundImage, cardviewBackgroundImage.getTransitionName());
transitionObjects.put(storeName, storeName.getTransitionName());
FragmentNavigator.Extras extras = new FragmentNavigator.Extras.Builder()
.addSharedElements(transitionObjects)
.build();
Bundle bundle = new Bundle();
bundle.putString("subfix", subfix);
bundle.putString("key", key);
Navigation.findNavController(getView()).navigate(R.id.action_mainScreenFragment_to_placeViewFragment, bundle, null, extras);
и во фрагменте назначения мой код:
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
postponeEnterTransition();
sharedElementEnterTransition = TransitionInflater.from(getContext()).inflateTransition(android.R.transition.move);
this.setSharedElementEnterTransition(sharedElementEnterTransition);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
String subfix = getArguments().getString("subfix");
String key = getArguments().getString("key");
CardView cardviewBackgroundImage = view.findViewById(R.id.card_main_image);
TextView storeName = view.findViewById(R.id.store_name);
cardviewBackgroundImage.setTransitionName("cardimage" + subfix + key);
storeName.setTransitionName("storename" + subfix + key);
startPostponedEnterTransition();
}
заранее спасибо!