На вашем месте я бы просто создал пользовательский компонент, который имел бы простой макет (VGroup, может быть, внутри Scroller, если вам нужна полоса прокрутки), который затем динамически добавлял бы к нему средства визуализации элементов. Суть в том, что ваш рендерер элементов никогда не изменяет свое свойство данных. Убедитесь, что средство визуализации элементов использует привязку для своих данных, а затем при любой сортировке создайте анимацию между индексами 2 элементов, убедитесь, что вы установили «includeInLayout = false» перед анимацией для обоих элементов и просто анимацию между их позиций.
Существуют и другие способы сделать это с помощью List, но тогда вам придется создавать дубликаты средств визуализации элементов для анимаций, в то время как реальные скрыты и изменять их значения. Не уверен, какой из них будет лучше в этом случае ...