我确信很多人都需要这个,但到目前为止我还没有找到一个好的解决方案。
环境:使用Flash CS6创建的iOS和Android AIR应用。
我要做的是:显示一个表(5列,200行)。没什么特别的,只是文本数据。该表应该是可排序的并且响应于轻扫手势而平滑地滚动。
DataGrid组件太“重”,不推荐用于移动设备。对此有一个简单的解决方案吗?
答案 0 :(得分:1)
我还没有尝试过,但是Mad Components(技术上它是扩展的Mad Components lib)有一个UIDataGrid类。
除此之外,由于您的网格/表仅打算显示文本,因此您可能需要尝试从Adobe提供组件。他们的网格很灵活,因此可能很“重”。
由于您只想渲染文本,因此您不会为在网格内渲染较重的对象(复选框,按钮等)付出代价。性能(仅在网格内呈现文本时)可以接受。
答案 1 :(得分: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等,滚动非常快:)
答案 2 :(得分:0)
忘记Flex DataGrid,即使使用静态文本,您也无法获得可接受的滚动性能(我的实时数据网格大约为5fps)。
可行的方法是使用自定义List
的常规LabelItemRenderer
和标题的按钮组。您可以非常轻松地使渲染器看起来像网格。
我没有测试Alex Harui's list based grid,但它应该开箱即用。如果没有,你应该明白这个想法。只需滚动自己的基于AS3的渲染器,即使快速滚动,性能也应超过25fps。我在iPad2上大约30岁。