Я работаю над приложением Flutter, которое имеет функции, аналогичные WhatsApp, где может быть множество сообщений, которые по сути являются аудиоплеерами. Я использую AnimatedList
, поэтому пузыри чата появляются и исчезают.
Проблема в том, что AnimatedList
не поддерживает keepAlive
, и я не встречал никаких альтернатив. Я не хочу, чтобы виджеты были переработаны, потому что, если сообщение воспроизводится, и я прокручиваю сообщение, я хочу, чтобы сообщение продолжало воспроизводиться И анимировать, и прямо сейчас я создаю экземпляр аудиоплеера и контроллера анимации в каждом дочернем элементе виджет. Я мог бы видеть, что это было бы более оптимальным, если бы я поддерживал все это состояние вне дочерних виджетов (на том же уровне, что и список), но максимальное количество пузырей чата в разговоре в этом приложении составляет ~ 50, и мы хотим двигаться быстрее, а не быть оптимальным прямо сейчас, поэтому я думаю, что это упрощение - хорошая идея, если я смогу сохранить виджеты в живых.
Я попытался обернуть дочерние виджеты в KeepAlive
, но безуспешно. Ниже представлены мои варианты:
- Есть какой-то поддерживаемый способ сделать это, и я об этом не знаю.
- Существует некоторая альтернативная / сторонняя библиотека, которая поддерживает это
- Попробуйте использовать неанимированный список и изучите другие способы анимации
- Реализуйте состояние над детьми
Мне было бы любопытно услышать от сообщества о возможных решениях. Спасибо!