首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有中继器的Flex ViewStack -中继器放在底部

带有中继器的Flex ViewStack -中继器放在底部
EN

Stack Overflow用户
提问于 2010-09-03 05:21:50
回答 2查看 637关注 0票数 3

在创建ViewStack时,我遇到了一个问题,在ViewStack中使用中继器和其他组件(即vBox)。中继器被放置在视图的底部。尽管中继器列在其他组件之前,但它被放在底部。

有没有办法让我在绘制其他组件之前先绘制转发器?

我在谷歌上搜索了一下,其他人在另一个网站上问了同样的问题,但没有人回答。我正在从他们的帖子中粘贴示例代码。最后绘制中继器。

谢谢

下面是一个示例:

代码语言:javascript
复制
<mx:ViewStack id="viewStack" width="100%" height="100%" backgroundColor="#FFFFFF" 
         backgroundAlpha="1" paddingLeft="5" paddingRight="5" paddingBottom="5">

    <mx:Repeater id="editorsRP" dataProvider="{dynamicFields}" 
          repeatEnd="organizeViewStack();" width="100%" height="100%">

        <editor:DynamicFieldEditor label="{FieldGroup(editorsRP.currentItem).name}" 
              width="100%" height="100%" fields="{FieldGroup(editorsRP.currentItem).fields}" dataProvider="{details}" />

    </mx:Repeater>

    <editor:NotesEditor id="notesEditor" width="100%" height="100%" label="Notes" 
         enabled="false" notesProvider="{attachment}" />

</mx:ViewStack>
EN

回答 2

Stack Overflow用户

发布于 2010-09-08 02:50:44

我认为问题出在dataProvider设置/更改它的值的时候。

但是,每当该值发生更改时,由中继器创建的现有子项将从父项中删除,并添加新的子项。

如果已创建ViewStack的子项,则来自中继器的子项将放置在现有子项之后。

例如:

代码语言:javascript
复制
 <mx:TabNavigator width="500">
      <mx:VBox label="Static 1" />
      <mx:Repeater dataProvider="{['a','b','c']}">
          <mx:VBox label="From repeater" />
      </mx:Repeater>
      <mx:VBox label="Static 2" />
  </mx:TabNavigator>

在这种情况下,dataProvider是在中继器初始化期间设置的,因此选项卡按顺序显示:

代码语言:javascript
复制
¦ Static 1 ¦ From Repeater ¦ From Repeater ¦ From Repeater ¦ Static 2 ¦

但是,如果dataProvider的值改变(或者dataProvider发送CollectionChangeEvent),那么3个中继子节点将被删除,并添加新的子节点。这将留下Tab键顺序:

代码语言:javascript
复制
¦ Static 1 ¦ Static 2 | From Repeater ¦ From Repeater ¦ From Repeater ¦

我注意到您已经将一个organizeViewStack方法连接到了repeatEnd事件处理程序-尽管没有显示该方法的代码。

这看起来是管理这件事的最好方法-一旦孩子们被设置好了,就重新排列他们的顺序。

票数 2
EN

Stack Overflow用户

发布于 2010-09-03 22:42:07

我猜是有点,但是

ViewStack的所有子对象都必须是一个容器。转发器不是一个容器。因此,它作为ViewStack子级的位置是无关紧要的,因为无论出于何种目的,它都被忽略了。

然而,当中继器执行时,它会创建一堆容器,并将它们添加到父容器(又称ViewStack);因此,给它们一个不同的Z顺序,这与您可能从代码中预期的不同。

您是否正在尝试创建ViewStack的许多不同的子项?或者,您希望"DynamicFieldEditors“以某种方式堆叠起来?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3631388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档