У меня есть RecyclerView
. Каждый из его элементов вида ресайклера может быть либо расширен, либо нет. Одновременно может быть только один элемент.
В сущности, я пытаюсь воссоздать список истории в лиллиповом диалоге.
Я нашел, что с использованием LayoutTransition on RecyclerView заставляет его сбой.
Но я не смог правильно анимировать изменение вида элемента между обоими состояниями.
Я пробовал getItemAnimator().setSupportsChangeAnimations(true)
в сочетании с notifyItemChanged(getPosition())
, но есть две проблемы:
- Воспроизведение открывается, что делает переход довольно странным, поскольку он исчезает над следующим элементом одновременно с перемещением элемента. Новое представление, которое появляется, не изменяет размер, оно уже находится в полном размере.
- По мере воссоздания представления старое представление исчезает, а новое исчезает, что делает мерцание фонового цвета представления.
Я также попытался установить LayoutTransition
в представлении элемента на время анимации, но проблема с этим подходом заключается в том, что макет RecycleView обновляется немедленно и не следует за анимацией.
Я создал небольшой демонстрационный проект этой проблемы для обеих попыток. Источники проектов здесь.
Как я могу создать плавный переход на изменение макета элемента?