0

多くの人がこれを必要としていると確信していますが、これまでのところ、良い解決策を見つけることができませんでした.

環境: Flash CS6 で作成された iOS および Android 用の AIR アプリ。

私がやろうとしていること: テーブルを表示します (5 列、200 行)。特別なことは何もなく、ただのテキストデータです。テーブルは並べ替え可能で、スワイプ ジェスチャに応じてスムーズにスクロールする必要があります。

DataGrid コンポーネントは「重すぎる」ため、モバイルにはお勧めできません。これに対する簡単な解決策はありますか?

4

3 に答える 3

1

まだ試していませんが、Mad Components (技術的には Extended Mad Components lib) にはUIDataGridクラスがあります。

それ以外では、グリッド/テーブルはテキストの表示のみを目的としているため、Adobe のコンポーネントを試してみることをお勧めします。それらのグリッドは柔軟であり、結果として「重い」場合があります。

テキストをレンダリングするだけなので、グリッド内のより重いオブジェクト (チェック ボックス、ボタンなど) をレンダリングしようとする代償を払う必要はありません。パフォーマンス (グリッド内のテキストのみをレンダリングする場合) は許容できる場合があります。

于 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を忘れてください。静的なテキストを使用しても、許容できるスクロールパフォーマンスは得られません(リアルタイムデータグリッドで約5 fpsを取得しました)。

行く方法は、ヘッダー用のListカスタムとボタングループを使用する通常の方法です。LabelItemRendererレンダラーを非常に簡単にグリッドのように見せることができます。

Alex Haruiのリストベースのグリッドはテストしていませんが、そのままで動作するはずです。そうでない場合は、アイデアを得る必要があります。独自のAS3ベースのレンダラーをロールするだけで、高速スクロールでもパフォーマンスが25fpsを超えるはずです。私はiPad2で約30を取得します。

于 2012-08-08T06:29:46.917 に答える