平铺布局不能使用100%宽度

时间:2011-04-21 05:56:05

标签: flex actionscript-3 flex4 flex4.5

我有一个带有图块布局的列表,我已经将项目渲染器的宽度设置为100%,但该项目不会调整大小以适合内容。相同的场景适用于水平和垂直布局。有任何解决方案??? ..

我的代码看起来像这样

<s:List width="{this.width}" dataProvider="{allActionsArrList}">
 <s:layout>
  <s:TileLayout />
 </s:layout>
 <s:itemRenderer>
   <fx:Component>
     <s:ItemRenderer width="100%" height="40">
    <s:BorderContainer width="100%">
    <s:Label text="{data.name}" />

    </s:BorderContainer>
      </s:ItemRenderer>
    </fx:Component>
   <s:itemRenderer>
</s:List>

提前致谢!

2 个答案:

答案 0 :(得分:5)

尝试将此添加到TileLayout:

TileLayout columnAlign="justifyUsingWidth"

答案 1 :(得分:0)

如果我错了,请纠正我,这是我理解你想做的事情:

您需要List中的项目以水平均匀拉伸占据List的100%宽度。因此,如果只有一个项目,它占据列表的100%宽度。如果某个项目太多(即所有项目必须在其minWidth以下调整大小),则最后一项将移动到下一行。

以下是使用TileLayout可以实现的目标:

您可以设置columnWidth="{yourItemRendererMinWidth}"columnAlign="justifyUsingWidth"。这使得您的TileLayout将其行均匀地划分为具有最小宽度的列作为yourItemRendererMinWidth。如果列超出了List容器的右边缘,则会将其传输到下一行,而行中的所有先前列都会延伸到容器的右边缘。

但是,行上会有空列(例如,如果有2个项目的minWidth = 100,而列表的宽度为300,则会有一个空列)。如果您的项目太少,则必须以编程方式调整TileLayout上的columnWidthrequestedColumnCount