在Flex中限制自定义列表itemrenderer的宽度

时间:2009-07-23 09:22:07

标签: flex list width itemrenderer

我正在使用自定义itemrenderer来显示照片列表,并且需要知道如何控制宽度。目前它这样做:

Why so wide?
(来源:tdwright.co.uk

正如我相信你会同意的那样,令人眼花缭乱。

列表创建如下:

<mx:Panel width="100%" height="100%" layout="absolute" title="Photos">
    <mx:List x="0" y="0" width="100%" height="100%" id="photoList" dataProvider="{photos}" itemRenderer="thumbnails" rowHeight="100"/>
</mx:Panel>

itemrenderer组件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Image source="{data.src}" id="image" scaleContent="true" toolTip="{data.caption}" height="100%" horizontalAlign="center"/>
</mx:VBox>

我已尝试在一大堆地方放置width =“100%”,但没有成功。如果有人知道如何控制这一点,我将非常感激。

3 个答案:

答案 0 :(得分:1)

如果在itemrenderer中设置这些属性verticalScrollPolicy =“off”horizo​​ntalScrollPolicy =“off”,则条形消失

我不知道为什么他们选择了可怕的“关闭”而不是假的

答案 1 :(得分:0)

这里有一些观察,基于类似痛苦经历的m气。 (警告:我还没有构建一个测试应用程序来确认此特定情况下的所有内容)

假设您希望列表根据其包含的itemRenderer元素的大小调整其宽度,那些itemRenderer元素需要提供宽度信息。以这种方式使用VBox并允许使用滚动条意味着VBox将尝试在内容的大小(图像)和父级的大小之间“仲裁”。所以是的,首先要做的是关闭VBox上的滚动条,假设你不能完全摆脱VBox。 (我猜你想要VBox,这样你就可以在图像下放一个标题或其他东西作为下一步)

您指定的列表大小为其的100%,即Panel,其大小为其父级的100%。不要将这些元素的大小“自上而下”,而是考虑不指定它们的宽度,以便Flex自下而上计算所需的宽度。如果您需要相对于同行进行布局,请在列表或面板上使用maxWidth约束它们的大小。

另一个需要了解的重要事项是“minHeight = 0”技巧。事实证明,当minHeight或minWidth设置为默认NaN以外的其他值时,Flex使用的大小调整算法表现完全不同。将其设置为0在许多情况下非常有用。在VBox和/或List上尝试minWidth = 0.

答案 2 :(得分:0)

除了关闭滚动策略外,还要将左右设置为0.这应该将宽度固定为父级的宽度。