Flex:Multy row TabBar?

Yor*_*iev 2 apache-flex air actionscript-3 flex4.5

  • 是否有可能,以及如何根据容器的宽度设置多行TabBar(如果有的话)?

RIA*_*tar 8

这就像给你的TabBar一个TileLayout一样简单.您不必为TabBar创建子类,甚至不必为它创建自定义外观类.这样做:

<s:TabBar dataProvider="{dp}" left="0" right="0">
    <s:layout>
        <s:TileLayout horizontalGap="-1" verticalGap="-1" 
                      requestedRowCount="2" />
    </s:layout>
</s:TabBar>
Run Code Online (Sandbox Code Playgroud)

哪个会产生这样的东西:

带有TileLayout的TabBar

由于TileLayout默认会分配一定数量的行,因此生成了您看到的TabBar下方的间隙.您可以通过设置所需requestedRowCount的行数来覆盖此值(本例中为2).

如果您希望它是真正动态的,您可以通过将TabBar的总数width与TileLayout 进行比较来计算所需的行数columnWidth,并将得到的数字绑定到requestedRowCount属性.

  • height ="{(int(dataProvidersTabs.length /(width/90))+ 1)*21}"这是另一个修复,但也许有很多美妙的解决方案. (2认同)