Как установить переменный размер для элемента управления List в Flex? - PullRequest
0 голосов
/ 17 июня 2010

Следующий код отображает список комментариев, используя элемент управления List. Высота элемента установлена ​​на фиксированное значение (150), поэтому кажется, что это работает: если содержимое слишком длинное, полоса прокрутки показывает ...

Тем не менее, я действительно хочу не устанавливать высоту, а позволить ей изменяться в зависимости от размера контента. Есть ли способ сделать это?

        <mx:List id="commentList" width="100%" dataProvider="{commentSet.commentArrayColl}"
            rowCount="{commentSet.commentArrayColl.length}" >
            <mx:itemRenderer>
                <mx:Component>
                    <mx:VBox width="100%" height="150" >
                        <mx:Text text="{data.commentContent}" />
                        <mx:Text text="{data.username} ({data.modified})"/>
                    </mx:VBox>
                </mx:Component>
            </mx:itemRenderer>
        </mx:List> 

EDIT: Чтобы быть более ясным, я не хочу устанавливать высоту VBox itemRenderer на «150» или любое другое фиксированное значение - но он покажет только одну строку текста, если я не сделаю этого. Поэтому я ищу выход из этого. (Если VBox не находится внутри itemRenderer, он автоматически отрегулирует высоту при увеличении длины строки текстового поля - это то, что я хочу.)

Ответы [ 2 ]

3 голосов
/ 17 июня 2010

Добавление свойства высоты, которое связывает функцию dataProvider.length * 150:

    <mx:List id="commentList" width="100%" dataProvider="{commentSet.commentArrayColl}"
        rowCount="{commentSet.commentArrayColl.length}" height={commentSet.commentArrayColl.length*150}>
        <mx:itemRenderer>
            <mx:Component>
                <mx:VBox width="100%" height="150" >
                    <mx:Text text="{data.commentContent}" />
                    <mx:Text text="{data.username} ({data.modified})"/>
                </mx:VBox>
            </mx:Component>
        </mx:itemRenderer>
    </mx:List>
1 голос
/ 17 июня 2010

Попробуйте не устанавливать высоту на VBox, а variableRowHeight равняется true в списке.Хотя я не уверен, насколько хорош этот список.

В качестве альтернативы, поскольку вы на самом деле не используете преимущества перезапуска itemRender (из-за rowCount = dataProvider.length), вы можете рассмотреть возможность использования повторителя вместо списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...