Как запустить анимацию перехода между активити с общим элементом после создания второй активити

71
17 марта 2022, 10:50

Есть задача, при переходе с одной актвити на другую, "перемещается" общий элемент (ImageView), во второй активити есть RecyclerView куда эта картинка и попадает. Вопрос, как запустить анимацию перехода с общим элементом, после того как вторая активтити будет создана? Обратная анимация работает. У меня есть подозрение, из-за того, что во второй активити, где RecyclerView, анимация не отрабатывает так как в этот момент еще не установлен адаптер recyclerView.setAdapter(recyclerAdapter); Как тогда запустить анимацию?

Answer 1

В общем сам отвечу на свой вопрос, во второй активити, где RecyclerView куда "прилетает" картинка, нужно сначало остановить показ анимации. Перед setContentView() установить postponeEnterTransition()

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    postponeEnterTransition();
}
setContentView(R.layout.activity_task);

И в адаптере RecyclerView вызвать через интерфейс метод setStartPostTransition().

@Override
    public void onBindViewHolder(@NonNull TaskRecyclerViewHolder viewholder, int position) {
            viewholder.imageView.setTag(position);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                viewholder.imageView.setTransitionName("anim");
                iView.setStartPostTransition(viewholder.imageView);
            }        
    }
READ ALSO
Как правильно вывести сообщение, что ресурс занят и поток будет ждать освобождения ресурса?

Как правильно вывести сообщение, что ресурс занят и поток будет ждать освобождения ресурса?

Пусть есть разделяемый ресурс в программе "res"Пусть есть два потока, которые хотят зайти в критическую секцию:

285
Последовательность анимации javafx

Последовательность анимации javafx

Вопрос вот в чем: Есть класс Controller и FXMLУ кнопки "бросить кубик" есть event onMouseClicked выполняющий метод thrw() в Controller

91