Динамическая ширина вкладки в компоненте Flex 4 TabBar со скином - PullRequest
0 голосов
/ 17 июня 2010

У меня есть компонент Flex 4 TabBar с пользовательским скином.В этом скине средство визуализации элемента определяется с помощью ButtonBarButton с пользовательским скином.Все вкладки в элементе разметки теперь имеют одинаковую ширину.

Однако клиент хочет, чтобы я динамически увеличивал ширину вкладок, поэтому меньшая вкладка для меньшей метки, большая для длинной метки.Кто-нибудь знает, как настроить ширину вкладки (ButtonBarButton)?

Спасибо миллион!

1 Ответ

1 голос
/ 17 июня 2010

Я нашел что-то, что работает.

Создайте пользовательский компонент, который наследуется от ButtonBarButton, назовите его CustomTabButton.

Добавить связываемое свойство tabWidth . Затем, когда мы обновляем tabWidth, ширина вкладки корректируется с ним. Вот как вы обновляете скин:

  • установить для хост-компонента пользовательский класс CustomTabButton.
  • В определении SparkSkin свяжите значение ширины со свойством hostComponents tabWidth.

    * +1017 * ширина = "{hostComponent.tabWidth}"

Скин выглядит так:

<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009"
                 xmlns:mx="library://ns.adobe.com/flex/mx"
                 xmlns:s="library://ns.adobe.com/flex/spark"
                 xmlns:fb="http://ns.adobe.com/flashbuilder/2009"
                 minHeight="54"
                 width="{hostComponent.tabWidth}"
                 xmlns:tabbar="be.boulevart.project.components.tabbar.*">

        <!-- host component -->
        <fx:Metadata>
            <![CDATA[ 
            [HostComponent("be.boulevart.project.components.tabbar.CustomTabButton")]
            ]]>
        </fx:Metadata>
...