Я знаю, что есть много вопросов о динамических размерах для компонентов Flex, но этот довольно специфичен, а другие ответы не очень помогают.Вкратце, мне нужен List, размер которого точно соответствует его содержимому, если только эта высота не превышает его (динамически измеряемый) родительский контейнер.Мои требования следующие:
- Компонент расширяет список или, по крайней мере, действует аналогично.
variableRowHeight
и wordWrap
оба равны true
. - Высота списка не может быть меньше
minHeight
(примерно 32 пикселя для стрелок полосы прокрутки). - Высота списка не может быть больше высоты родительского контейнера.
- Обратите внимание, что размер родительского контейнера можно динамически изменять.
- Высота списка должна обновляться при изменении размера содержимого и родительского контейнера.
- Обновление в режиме реального времени было бы предпочтительным, но не обязательным.
- Не должно быть полос прокрутки, если высота содержимого меньше высоты родительского контейнера (звучит очевидно, но яУ нас тоже были проблемы с этим.)
Проблема в том, что с variableRowHeight
и wordWrap
очень трудно узнать размер контента в любой момент времени.Если ширина родительского контейнера будет уменьшена, в списке может произойти перенос строки, который изменит высоту содержимого.Я знаю, что могу измерить высоту содержимого списка, используя measureHeightOfItems() + viewMetrics.top + viewMetrics.bottom
, но когда мне это вычислять?Какие события я должен слушать?И с чем у меня больше всего проблем - когда я должен рассчитать его для первоначальной установки размера (т. Е. Как только контент закончил заполняться)?
Я занимался этим уже несколько месяцев ивыключено, но никогда не может найти решение (хотя я близко подошел с кусками кода различной степени непонятности).Я не прошу кого-то создать полный компонент для меня, я просто надеюсь, что у кого-то есть правильные указатели, чтобы сообщить мне, как мне следует определять и обновлять размер.Я рад сделать все прототипирование для вас и обсудить результаты :)
.