Проблема высоты с автоматическим переносом слов в MXTreeItemRenderer в гибком дереве - PullRequest
0 голосов
/ 23 июля 2010

В TreeItemrenderer по умолчанию можно включить автоматическую перенос слов в зависимости от ширины дерева, установив wordWrap=true и variableRowHeight="true" в элементе управления деревом.

Я хотел бы включить это поведение в MXTreeItemRenderer(обертка для использования искровых компонентов в качестве mx itemrenderer).Я использовал MXTreeItemRenderer, созданный Flexbuilder, и добавил ширину 100% к компоненту метки (см. Код ниже).

Обтекание слова работает сейчас, но во многих случаях вычисление высоты средства визуализации элемента неверно, когда естьэто разрывы строк.Кажется, он работает с фиксированной шириной.

Есть идеи, как это сделать правильно?

<s:MXTreeItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                      xmlns:s="library://ns.adobe.com/flex/spark" 
                      xmlns:mx="library://ns.adobe.com/flex/mx">

    <s:states>
        <s:State name="normal" />            
        <s:State name="hovered" />
        <s:State name="selected" />
    </s:states>
    <s:HGroup left="0" right="0" top="0" bottom="0" verticalAlign="middle">
        <s:Rect id="indentationSpacer" width="{treeListData.indent}" percentHeight="100" alpha="0">
            <s:fill>
                <s:SolidColor color="0xFFFFFF" />
            </s:fill>
        </s:Rect>
        <s:Group id="disclosureGroup">
            <s:BitmapImage source="{treeListData.disclosureIcon}" visible="{treeListData.hasChildren}" />
        </s:Group>
        <s:BitmapImage source="{treeListData.icon}" />
        <s:Label id="labelField" text="{treeListData.label}" paddingTop="2" width="100%"/>
    </s:HGroup>
</s:MXTreeItemRenderer>

Ответы [ 3 ]

0 голосов
/ 03 августа 2010

Я обнаружил, что высота рассчитывается правильно, когда это делается дважды.Поэтому в качестве обходного пути я слушаю изменения данных и размера и вызываю метод invalidateList() дерева изменений.

0 голосов
/ 10 сентября 2010

В этом блоге кто-то указал мне на этот сайт

действительно хороший, он помог мнеЯ думаю, что это работает для различной высоты строки.Узлы с переносом текста должны работать.

Наслаждайтесь!

0 голосов
/ 26 июля 2010

Ну, вы, вероятно, должны сначала сообщить об ошибке;)

Если он неправильно сообщает о высоте, переопределите метод measure (..) и самостоятельно определите высоту, вам, вероятно, придется использовать линейные метрики (если они все еще есть в Spark), чтобы решить это.

...