提高TileLayout性能的技巧?

时间:2013-12-05 14:09:52

标签: android flex virtualization flash-builder4.5

我使用FlashBuilder定位移动设备,我使用TileLayout查看数据项,我将useVirtualLayout设置为“true” 我有一些问题:

  1. 默认情况下项目渲染器是否已恢复?或者我应该把它设置为真我自己?
  2. 如何控制虚拟化项目的范围?
  3. 是否有任何关于提高TileLayout
  4. 子项目构建性能的提示

    如果原生TileLayout速度很慢,是否可以使用其他控件?如果构建我自己的会更好,是否有任何构建自定义布局的示例?

1 个答案:

答案 0 :(得分:1)

  1. 默认设置为true。但是,有些情况下它们没有虚拟化。如果列表大小适合其内容,我不相信虚拟化会发生。如果我没有弄错的话,虚拟化只会在ItemRenderer离开父viewport控件的List时发生。因此,如果您在页面上有一个列表,并且该页面正在控制滚动而不是列表,那么我认为不会发生虚拟化。这就是我过去看到的。不确定这是否真的有效,但这是我得到的印象。找出答案的简单方法是在DataChange处理程序中抛出跟踪语句。如果它在初始化后跟踪,你知道虚拟化正在运行
  2. 我不确定你能控制住这个。您可以编写一个自定义布局来实现它,但这可能比它值得更麻烦
  3. TileLayout本身可能不是您遇到的问题,而是ItemRenderer
    • 在移动设备上,请勿扩展除ItemRendererLabelItemRenderer之外的任何IconItemRenderer课程。
    • 不要在MXML中编写渲染器。写在AS3。
    • 利用正确的渲染器生命周期。这意味着你应该在构造函数中做很少的事情。也许设置一些属性,但实例化任何DisplayObject。相反,覆盖createChildren()并在那里执行。覆盖layoutContents()以进行定位和调整大小。覆盖drawBackground()以处理背景。我强烈建议您阅读Flextras的这篇文章(你会看到他通过Reboog77在SO上)关于编写移动项目渲染器。 https://www.flextras.com/blog/index.cfm/2011/6/24/Building-a-Mobile-ItemRenderer-in-Flex
    • 让渲染器尽可能简单。如果您可以使用Graphics类直接绘制到对象中,请执行此操作,而不是使用Rect或类似内容。
    • 文字渲染速度很慢。请勿经常更改它并将渲染器中显示的文本保持在最低限度
    • ContentCache用于iconDisplayIconItemRenderer以外的任何图片。 ContentCache将无需每次重新加载图像。(iconDisplay / icon默认已经使用此功能)