0

Four Square Androidアプリのフィードは次のようになります:

ここに画像の説明を入力してください

実際の投稿が入った長方形のボックス。その下には、このような10人のようなテキストがあります。

これは、余白と異なる背景を持つ実際のコンテンツとその下のTextViewを含む単なるlistViewですか。

ImageViewと5-6TextViewsを備えた複雑なListViewを使用していた場合、UIの読み込みに時間がかかるためです。

iOSに取り組んでいる私の友人の1人は、カスタムListViewアイテムの代わりに、画像とテキストビューを備えたカスタムビューのように見えるImageViewを使用すると言いました。これにより、読み込みが大幅に高速化されます。しかしもちろん、そのようなことを実装するには多くの時間がかかります。

別のカスタムリストビューかどうかを知りたいだけですか?

そして、UIの読み込みが遅れたのは、他の理由によるものですか?

そのようなテクニックはアンドロイドでも利用できますか?

ありがとうございました

4

2 に答える 2

2

ListView複雑な子供たちの意見を持つ可能性があります。である可能性もありますExpandableListView

以前に使用したものよりも速く読み込まれる理由はいくつかあります。

  1. イメージはおそらくファイルシステムにすでにキャッシュされているため、イメージをダウンロードするのではなく、ローカルストレージからロードします。
  2. 画像はすでに正しいサイズであるため、サイズ変更は必要ありませんでした。
  3. 画像の読み込みは、画像がメモリに読み込まれている間UIに遅れが生じないように、バックグラウンドスレッドで実行されました。
于 2012-10-29T07:56:57.250 に答える
0

Adapter.getView()で各ListViewアイテムの複雑なレイアウトを展開し、レンダリングするアイテムのオブジェクトに基づいて、不要なビューの(View.setVisibility(View.Gone))を削除できます。

拡張されたレイアウトを再利用する場合は、everithingの可視性をView.VISIBLEに再度設定することを忘れないでください。

私はすでに私のコードでこれを行っています:

        if (post.getImageURL() != null && !post.getImageURL().isEmpty()) {
            holder.image.setVisibility(View.VISIBLE);
            holder.image.setScaleType(ScaleType.FIT_CENTER);

            displayImage(post.getImageURL(), holder.image);
        } else {
            holder.image.setVisibility(View.GONE);
        }

この場合、オプションの画像を非表示にしています。

于 2012-10-29T12:39:28.933 に答える