0

グリッドビューに表示するアイテムは約700個あります。

Samsung Galaxy Tab 10.1では、これは問題ではありません。十分なメモリがあります。HTC Explorerでは、ヒープがオーバーフローします。

そのため、現在のスクロール位置に関するデータを動的にロードしたいと思います(画面のN行+テールの5行)。そして、合計行の位置を表すスクロールバーを表示したいと思います。でも、見えないものは描きたくないです。

UITableViewつまり、 iOSに似たものを作りたいのです。これどうやってするの?

4

2 に答える 2

2

AndroidAdapterはiOSと同じように機能しUITableViewDataSourceます。あなたは電話する必要があります

public void setAdapter (ListAdapter adapter)

するとGridView、そのアダプタは次のようなコールバックを受け取ります。

public int getCount ()
public View getView (int position, View convertView, ViewGroup parent)

convertViewでデキューするのと同じ方法で再利用することが重要UITableViewCellです

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

これらすべてを正しく実行すると、すべてのビューを一度にロードしようとすることはありませんが、現在表示されているビューのみがロードされ、メモリの問題は発生しなくなります。

于 2012-06-22T09:11:40.243 に答える
0

多数のオブジェクトをインスタンス化する必要がないように、View オブジェクトを再利用できる ListView を使用する必要があります。

于 2012-06-22T08:55:43.217 に答える