2009-07-23 71 views
0

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

Why so wide? http://tdwright.co.uk/phpplayground/test_tom/img/flex_problem1.png

其中,因为我相信你会同意,是眼睛bleedingly难看。

列表创建这样的:

<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> 

我试着将宽度= “100%”,在一大堆的地方,但没有成功。如果有人知道我可以如何控制这一点,我会非常感激。

+0

这个问题有超过2k的意见,是超过2岁,但仍然没有答案。它变得无关紧要了吗? (我放弃使用Flex。)我应该给它一个赏金吗? – 2011-10-03 12:28:15

回答

1

如果设置的itemRenderer verticalScrollPolicy =“关闭” horizo​​ntalScrollPolicy =里面这些属性“关”的酒吧都消失

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

+0

这隐藏了酒吧,但不限制宽度,这几乎使情况变得更糟。尽管感谢您的回答。 – 2009-07-23 10:03:30

0

这里有一些观察,基于类似痛苦经验的mi妄症。 (注意:我还没有构建测试应用程序来确认此特定情况下的所有内容)

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

该列表,因为你指定的大小为其的100%,面板,这本身就是其母公司的100%。不要将这些元素的大小设置为“自上而下”,请考虑让它们的宽度未指定,以便Flex将自下而上计算所需的宽度。在列表上使用maxWidth或面板限制它们的大小,如果您需要将它们放在相对于其同级的位置。

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

0

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

相关问题