【问题标题】:Setting a Spark list to 100% height inside of a TabbedViewNavigatorApplication在 TabbedViewNavigatorApplication 内将 Spark 列表设置为 100% 高度
【发布时间】:2012-03-21 22:45:18
【问题描述】:

我正在尝试将 Spark 列表控件设置为 TabbedViewNavigatorApplication 内视图的 100% 高度。

<s:List dataProvider="{dp}" itemRenderer="renderers.Renderer" width="100%" height="100%" />

使用这个我似乎无法让列表适合视图,它总是最终太高。

我正在使用 Flash Builder 移动配置文件进行测试,所有手机的结果似乎都相同。将高度设置为低于 50% 的某个数字似乎会使列表更接近全宽,但在不同手机上并不一致。

我的应用容器设置为 160DPI

<s:TabbedViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                              xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="160" applicationComplete="init(event)">

在我开始使用 TabbedViewNavigatorApplication 之前我没有遇到过这个问题,在基于标准视图的应用程序中似乎 100% 可以正常工作。

谢谢!

【问题讨论】:

  • 我原以为它会起作用。如果我要提供解决方案,我建议在 updateDisplayList() 中调整列表的高度并使用 unscaledHeight - 默认布局上的任何填充。
  • 是的,我也是,你的意思是我应该覆盖实际列表并在该类中处理这个?
  • 我试图在我的视图 updateDisplayList 方法中实现这个,但它似乎没有被调用。
  • 组件永远不会自行调整大小,只有子组件。您不需要覆盖或扩展实际列表;您只需要在包含子列表的类中覆盖 updateDisplayList()。
  • 由于某种原因,当我在视图中跟踪 unscaledHeight 时,我得到 112。这个值似乎很低,似乎这可能是 100% 关闭的原因?

标签: actionscript-3 apache-flex actionscript flex-mobile


【解决方案1】:

如果您为对象指定 % 高度,Flex 仍会测量对象的高度,如果测量的高度大于计算的百分比,则使用测量的高度。

为防止这种情况,请为 minHeight 指定任何非零值(例如 minHeight="1")。这告诉布局管理器,对象小于其测量高度是可以的。

【讨论】:

  • 谢谢,只是累了,我得到了相同的结果。我开始认为这个问题可能来自项目的其他地方
【解决方案2】:

想提供更新,看来我错过了一些愚蠢的事情。

我正在使用

创建我的 ViewNavigator
var vN:ViewNavigator = new ViewNavigator();

我已经使用

设置了我的 vN 宽度
vN.percentWidth=100;

但我忘了设置高度

vN.percentHeight=100;

这似乎解决了一切。

谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2012-08-12
    • 2015-03-17
    • 2013-07-18
    相关资源
    最近更新 更多