0

我相信很多人都需要这个,但到目前为止我还没有找到一个好的解决方案。

环境:使用 Flash CS6 创建的适用于 iOS 和 Android 的 AIR 应用程序。

我正在尝试做的事情:显示一个表格(5 列,200 行)。没什么花哨的,只是文本数据。表格应该是可排序的并且可以平滑地滚动以响应滑动手势。

DataGrid 组件太“重”,不推荐用于移动设备。有一个简单的解决方案吗?

4

3 回答 3

1

我还没有尝试过,但是Mad Components(技术上它是 Extended Mad Components lib)有一个UIDataGrid类。

除此之外,由于您的网格/表格只打算显示文本,您可能想尝试一下 Adob​​e 的组件。他们的网格很灵活,因此可能很“重”。

由于您只想渲染文本,因此您不会为尝试在网格内渲染较重的对象(复选框、按钮等)付出代价。性能(仅在网格内呈现文本时)可能是可以接受的。

于 2012-08-07T19:37:06.420 回答
1

对于表格显示(甚至是花哨的),我会使用 StageWebView,当然,如果您负担得起不能在其上覆盖任何东西的话。下面的快速示例:

webView = new StageWebView();
webView.viewPort = new Rectangle(0, 44, 480, 756);
webView.loadString('<html><head><style type="text/css">tr:nth-child(odd)    { background-color:#eee; } tr:nth-child(even)    { background-color:#fff; } .header_button { width:100%;}</style></head><body><table width="200" border="1"><tr><td><input name="Name" type="button" value="Name" class="header_button"></td><td>Id</td></tr><tr><td>Mark</td><td>0</td></tr><tr><td>Bob</td><td>1</td></tr></table></body></html>');

webView.stage = stage;

您应该通读文档,因为 loadString 非常有限:) 以查看使用此类的所有可能方式,但是现在应该将这个想法植入您的心中:) 例如可以使用 CSS、JQuery 等,并且滚动非常快: )

于 2012-08-08T08:27:13.007 回答
0

忘记 Flex DataGrid,即使使用静态文本,您也无法获得可接受的滚动性能(我得到了大约 5fps 的实时数据网格)。

要走的路是正常List的,带有标题的自定义LabelItemRenderer和按钮组。您可以很容易地使渲染器看起来像一个网格。

我还没有测试过Alex Harui 的基于列表的 grid,但它应该可以开箱即用。如果没有,你应该明白了。只需滚动您自己的基于 AS3 的渲染器,即使快速滚动,性能也应超过 25fps。我在 iPad2 上得到大约 30。

于 2012-08-08T06:29:46.917 回答