繁体   English   中英

Flex DataGroup设置项目渲染器的高度

[英]Flex DataGroup setting the height of the item renderer

最近几天,我一直在与渲染器一起玩移动应用程序。 我正在创建一个网格状的渲染器,其中的列对于移动应用程序而言是轻量级的。 这有点像一个穷人的数据网格。 布局很好。 我的问题是控制列表中每一行的高度。

调用measure()时,我将measuredHeight设置为:

  measuredHeight = getElementPreferredHeight(ld) + verticalPadding; 

垂直填充为:

  var verticalPadding:Number = getStyle("paddingTop") + getStyle("paddingBottom");

当我在桌面上调试时,measuredHeight设置为12,在设备(Motorola Atrix)上,将其设置为12。

但是,当调用layoutContents时,unscaledHeight比我的测得的Height值大得多(在设备上为44,在桌面上运行时为66),导致每个项目周围的垂直空白超出我的期望。

我确定我缺少了什么,但是如何控制行高呢? 在这个特定的示例中,我碰巧使用了一个数据组,但是在一些简单的列表中,我遇到了同样的问题。 系统在某个地方用其他一些值覆盖了我的measuredHeight。

有任何想法吗?

兰迪

您的代码段是渲染器的一部分还是数据组的一部分? 或者别的地方?

在Flex中,父母始终负责为其子女定尺寸。 对于渲染器,DataGroup是父级,渲染器实例是子级。 因此,无论您在itemRenderer中指定什么尺寸,都可能无法使用它。 measuredHeight和measuredWidth只是父容器可以根据其实现选择忽略(或不忽略)的建议。

您可以使用TypicalItem来帮助计算默认的行大小。

您还可以创建一个自定义布局类来确定孩子的大小和位置。

使用VerticalLayout时 ,除非将variableRowHeight设置为true,否则宽度是固定的。 文档中的更多信息 您还可以在布局类上设置rowHeight属性,以指定所有行的高度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM