0

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

为什么这么宽?
(来源: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%" 放在一大堆地方,但没有成功。如果有人知道我如何控制这一点,我将不胜感激。

4

3 回答 3

1

如果您在 itemrenderer verticalScrollPolicy="off" Horizo​​ntalScrollPolicy="off" 中设置这些属性,则条形将消失

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

于 2009-07-23T09:26:51.487 回答
0

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

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

您指定的 List 的大小为其父级面板的 100% 面板本身的大小为其父级的 100%。与其“自上而下”调整这些元素的大小,不如考虑不指定它们的宽度,以便 Flex 计算它们所需的自下而上的宽度。如果您需要将它们相对于它们的对等体进行布局,请在列表或面板上使用 maxWidth 来限制它们的大小。

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

于 2009-07-23T15:03:45.710 回答
0

除了关闭滚动策略之外,将 left 和 right 设置为 0。这应该将宽度锚定到父级的宽度。

于 2011-03-12T18:31:34.933 回答