Скрыть контейнер из контейнера стека - PullRequest
0 голосов
/ 23 декабря 2010

У меня есть контейнер стека просмотра с 3 видами: красный, черный и синий.Как я могу полностью скрыть черное и не включать его?

<?xml version="1.0" encoding="utf-8"?>
<s:Application  xmlns:fx="http://ns.adobe.com/mxml/2009"    
            xmlns:mx="library://ns.adobe.com/flex/mx"     
            xmlns:s="library://ns.adobe.com/flex/spark"
            horizontalCenter="0" verticalCenter="0"
            >

<mx:LinkBar dataProvider="{myVS}" borderVisible="false" color="blue" disabledColor="black"  />

<mx:ViewStack id="myVS" borderVisible="false" width="100%" height="100%"  >

    <mx:VBox id="red" label="click red" horizontalAlign="center" verticalAlign="middle" >
        <s:Label id="r1" color="red" fontSize="25" text="This is the red label" />
    </mx:VBox>

    <mx:VBox id="black" label="click black" horizontalAlign="center" verticalAlign="middle" >
        <s:Label id="r2" color="black" fontSize="25" text="This is the black label" />
    </mx:VBox>

    <mx:VBox id="blue" label="click blue" horizontalAlign="center" verticalAlign="middle" >
        <s:Label id="r3" color="blue" fontSize="25" text="This is the blue label" />
    </mx:VBox>

</mx:ViewStack>

</s:Application>

Ответы [ 2 ]

1 голос
/ 23 декабря 2010

Боюсь, мне не хватает цели вашего вопроса. Компонент ViewStack используется для отображения нескольких представлений, «сложенных» друг над другом, при этом одновременно отображается только представление. Он не включает встроенную навигацию, как это может быть у TabNavigator. Если вы хотите «полностью скрыть» черный вид, просто закомментируйте его перед компиляцией кода, и поэтому он никогда не будет показан.

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

var dataProvider : ArrayCollection = new ArrayCollection([
{label:"click Red"},
{label:"click blue"}
]);

И укажите, что dataPRovider в качестве источника dataProvider для вашей панели ссылок:

<mx:LinkBar dataProvider="{dataProvider}" borderVisible="false" color="blue" disabledColor="black"  />
0 голосов
/ 23 декабря 2010

Я думаю, что самый быстрый и самый грязный способ - просто удалить его:

myVS.removeElement(black);

Но я думаю, что вместо этого я бы использовал состояния просмотра. Это позволит вам вернуть его позже, не выясняя, как / где его вернуть. Определите ваши состояния:

<s:states>
    <s:State name="all" />
    <s:State name="notBlack" />
</s:states>

А в вашем "черном" VBox исключите его из состояния "notBlack":

<mx:VBox id="black" excludeFrom="notBlack" ... />

Затем, когда вы хотите удалить его, вы можете сделать это, установив currentState

<s:Button click="currentState='notBlack'" label="remove black" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...