2011-04-21 72 views
1

我有一个瓷砖布局列表,我已将项目渲染器的宽度设置为100%,但该项目不会调整大小以适应内容。同样的情况可以很好地用于水平和垂直layout.Is有什么解决办法??? ..瓷砖布局不适用于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> 

提前感谢!

+0

你的目标是什么?你想要有单列平铺布局还是要删除单元之间的间隙?请描述你的预期。 – Constantiner 2011-04-21 07:37:46

+0

其实它不是单列,我可能有很多项目在瓷砖布局中。我的期望是它应该占据整个列表的大小。我的项目没有固定的宽度,它是100%。所以如果有两个项目在列表中,这两项应占据整个列表空间。 – Naveen 2011-04-21 08:35:41

+0

该项目有一个minWidth值,所以只有当大小低于最小宽度的项目应该开始在一个新的一排。我希望它现在清楚。谢谢你的答复... – Naveen 2011-04-21 08:37:12

回答

5

试图增加这TileLayout:

TileLayout columnAlign="justifyUsingWidth" 
0

纠正我,如果我错了,这里是你想要做什么我我的理解:

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

这里就是你可以用TileLayout实现:

您可以设置columnWidth="{yourItemRendererMinWidth}"columnAlign="justifyUsingWidth"。这使得你的TileLayout将其行平均分成最小宽度的列作为yourItemRendererMinWidth。如果一列超过列表容器的右边缘,它将被转移到下一行,而行中所有先前的列都拉伸到容器的右边缘。但是,行上会有空列(例如,如果有2个项目,其中minWidth = 100,而您的List的宽度为300,则会有一个空列)。如果项目太少,则必须以编程方式调整TileLayout上的columnWidthrequestedColumnCount