【问题标题】:Flex DataGroup setting the height of the item rendererFlex DataGroup 设置项渲染器的高度
【发布时间】:2012-01-08 02:28:10
【问题描述】:

最近几天我一直在为移动应用程序使用渲染器。我正在创建一个类似网格的渲染器,它的列对于移动应用程序来说是轻量级的。这有点像穷人的数据网格。布局很好。我的问题是控制列表中每一行的高度。

当 measure() 被调用时,我将 measureHeight 设置为:

  measuredHeight = getElementPreferredHeight(ld) + verticalPadding; 

垂直填充在哪里:

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

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

但是当 layoutContents 被调用时,unscaledHeight 是一个比我的measuredHeight 值大得多的数字(在设备上为 44,在桌面上运行时为 66),导致每个项目周围的垂直空白比我想拥有的要多。

我确定我遗漏了一些东西,但是如何控制该行高?我碰巧在这个特定的例子中使用了一个数据组,但是在一些我只使用一个简单的列表的情况下,我遇到了同样的问题。系统在某处用其他值覆盖了我的测量高度。

有什么想法吗?

兰迪

【问题讨论】:

    标签: apache-flex height itemrenderer


    【解决方案1】:

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

    在 Flex 中,父级始终负责调整子级的大小。对于渲染器,DataGroup 是父级,渲染器实例是子级。因此,无论您在 itemRenderer 中指定什么尺寸,都可能不会使用它。测量高度和测量宽度只是父容器可以选择忽略或不忽略的建议。

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

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

    使用VerticalLayout 时,宽度是固定的,除非您将variableRowHeight 设置为true。 More Info in the docs。您还可以在布局类上设置rowHeight 属性来指定所有行的高度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-02
      • 2019-02-28
      • 2011-02-04
      相关资源
      最近更新 更多