Поместите кнопку «addChild» в сетку пространства TabNavigator - PullRequest
0 голосов
/ 26 августа 2009

Этот вопрос похож на пост:

«Переместить кнопку в пространство сетки вкладок TabNavigator во Flex Builder». Переместить кнопку в область сетки вкладок TabNavigator во Flex Builder

но с небольшой разницей. Я хотел бы иметь кнопку, которая добавляет дочерний элемент (вкладку) к TabNavigator в пространстве сетки (проще с TabBar, но см. Ниже), но не будет блокировать вкладки, поскольку они расширяются к кнопке. Эту функцию можно увидеть в каждом веб-браузере, который использует вкладки.

Кроме того, я хотел бы, чтобы кнопка прокрутки появлялась, если открывалось слишком много вкладок, и возможность закрывать вкладки. Я пытался использовать SuperTabNavigator от Doug McCune, который предлагает большинство из этих функций, но он не предлагает кнопку addChild, которую я ищу.

Есть ли способ добавить эту кнопку addChild в пространство сетки или добавить функции из SuperTabNavigator в TabBar?

1 Ответ

0 голосов
/ 01 сентября 2009

Этот класс справится с задачей, за исключением прокрутки, когда вкладок слишком много.

<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="500" height="400">
    <mx:HBox width="100%">
        <mx:TabBar dataProvider="{viewstack}"/>
        <mx:Button label="+" width="35" click="addTab()"/>
    </mx:HBox>
    <mx:ViewStack height="100%" width="100%" id="viewstack"/>
    <mx:Script>
        <![CDATA[
            import mx.controls.Label;
            import mx.containers.Panel;
            //add a new container
            private function addTab():void
            {
                var l:Label = new Label();
                l.text = "Panel " + (viewstack.numChildren + 1);
                var p:Panel = new Panel();
                p.label = l.text;
                p.addChild(l);
                viewstack.addChild(p);
                viewstack.selectedChild = p;
            }
        ]]>
    </mx:Script>
</mx:VBox>
...