2016-11-03 5 views
1

私はListViewアイテムとして使用されるいくつかの複合コンポーネントを持っています。パフォーマンスを向上させるために、ビューホルダーを使用してListViewアイテムをレンダリングしますが、それぞれに複合コンポーネントがあるので、それはまだ遅く、各複合コンポーネントをレンダリングするたびにコンポーネントを膨張させる必要があります。化合物コンポーネントのAndroidビューホルダー

複合コンポーネントにViewHolderパターンを使用する方法はありますか?

+0

Viewholderパターンは、ビューへの参照を保持するために使用することです表示するデータをバインドするそれはビューを膨らませることとは関係がありません。 – Weizhi

+0

RecyclerViewを使用すると、ListViewではなくViewHoldersが再利用されます。ビューの入れ子を減らす(複合ビューのためにConstraintLayoutを使うことができる)。複合ビューに読み込んだ画像を持っている場合は、メモリに読み込む前にそれらをダウンサンプリングするため、ピカソで読み込みます。 – toshkinl

答えて

0

ListViewについては、viewholderで定義されたビューを保持するために、getTag()setTag()メソッドを使用しています。その後、ビューは再作成されず、コンテンツを変更するだけで再利用されます。

これ以外にも、RecyclerViewが常に最適です。

参考: - あなたが欲しいfindViewById()毎回を実行する必要はありませんので、

  1. RecyclerView vs. ListView
  2. What is the working of setTag and getTag in ViewHolder pattern?