Как изменить метки в ButtonBar - простой тестовый пример и скриншот прилагаются

В мобильном приложении Flex я хотел бы иметь ButtonBar внизу, и мне нужно изменить ярлыки его кнопок:

введите описание изображения здесь

(Я не хочу использовать здесь TabbedViewNavigatorApplication, потому что вся моя логика находится в одном представлении с ActionBar вверху и ButtonBar внизу).

Итак, я подготовил очень простой тестовый пример, чтобы продемонстрировать мою проблему.

Просто создайте «пустой» мобильный проект Flex в Flash Builder и поместите в него два моих файла (ниже), и вы увидите мою проблему - прикосновение к кнопкам внизу не меняет метку самой правой кнопки).

TestAC.mxml:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               applicationDPI="160">
    <fx:Script>
        <![CDATA[
            import spark.events.IndexChangeEvent;
            import spark.skins.mobile.TabbedViewNavigatorTabBarSkin;

            private function handleTabs(event:IndexChangeEvent):void {
                trace(_tabBar.selectedIndex);
                _tabs[2].label = String(1 + _tabBar.selectedIndex);
            }
        ]]>
    </fx:Script>
    <fx:Declarations>
        <s:MultiDPIBitmapSource id="CHAT" 
            source160dpi="@Embed('chat.png')"
            source240dpi="@Embed('chat.png')"
            source320dpi="@Embed('chat.png')" />

        <s:ArrayCollection id="_tabs">
            <fx:Object label="One" />
            <fx:Object label="Two" />
            <fx:Object label="Three" icon="{CHAT}" />
        </s:ArrayCollection>
    </fx:Declarations>

    <s:ButtonBar id="_tabBar"
                 requireSelection="true" 
                 width="100%" 
                 bottom="0"
                 skinClass="spark.skins.mobile.TabbedViewNavigatorTabBarSkin"
                 dataProvider="{_tabs}"
                 change="handleTabs(event)">
    </s:ButtonBar>

</s:Application>

chat.png:

введите описание изображения здесь


person Alexander Farber    schedule 05.08.2013    source источник


Ответы (1)


Хорошо, добавление _tabs.refresh(); в handleTabs помогло.

person Alexander Farber    schedule 05.08.2013