Flex - 使用visible和includeInLayout隐藏mxml

时间:2016-08-18 10:55:57

标签: flex include show-hide mxml visible

当mxml页面加载时,我试图隐藏Year2017。我使用了visible和includeInLayout属性,但它似乎并没有起作用。

有人可以帮我吗?

一些代码写在 - Year2017.mxml, Year2016.mxml, Year2015.mxml

MainScreen.mxml

<mx:HBox 
    <component:PopupOpenerViewStack
                id="payeVS" 
                borderStyle="none" 
                width="100%" 
                height="100%" 
                componentToFocusOn="{controlBar.overviewBut}"
                selectedIndex="{ this.mainModel.navigator.selectedIndex }" >

                <view1:Year2017 
                    width="100%" 
                    height="100%"
                    visible="{isVisible}" 
                    includeInLayout="{isVisible}" />

                <view1:Year2016 
                    width="100%" 
                    height="100%"/>

                <view1:Year2015 
                    width="100%" 
                    height="100%"/>                     
        </component:PopupOpenerViewStack>
</mx:HBox>  

3 个答案:

答案 0 :(得分:0)

视图堆栈的工作方式是它们根据索引显示子项。在这种情况下,它将在Popup中打开。我需要PopupOpener的内部提供更准确的答案。

您是否可以更改this.mainModel.navigator.selectedIndex?

而不是设置isVisble

它还取决于所需的行为。如果您打开弹出窗口并将其更改为可见,则需要执行哪些操作?

答案 1 :(得分:0)

我想你想要的是,Year2007不包含在堆栈中,不会是隐形的。你有没有尝试使用状态?

答案 2 :(得分:0)

感谢您的所有输入。问题已解决。

正如Robin所说,visible或includeInLayout属性不适用于PopupOpenerViewStack。因此,每当我想要隐藏元素时,我必须读取viewStack中每个项目的索引值并执行payeVS.removeChildAt(0)。

谢谢, Varatha