私はRecyclerViewを使い始めたばかりで、ヘッダー、フッター、ディバイダー、リストセレクターなどの多くの機能が欠けているのを見てきましたが、ListViewの代わりに使用することについて考え直しました。
ListViewと比較したRecyclerViewの長所と短所は何ですか? ListViewよりも複雑なビューを処理できますか?
これまでListViewを使用してきましたが、ごく少数ですが、RecyclerViewに切り替えるべきでしょうか、それとも早すぎますか?
Android Lollipopの登場により、RecyclerViewが正式に登場しました。RecyclerViewははるかに強力で柔軟性があり、ListViewを大幅に強化します。詳細な洞察を提供します。
利点
1)ViewHolderパターン
ListViewでは、ViewHolderパターンを使用することが推奨されていましたが、決して強制ではありませんでした。 RecyclerViewの場合、これは RecyclerView.ViewHolder クラスを使用して必須です。これは、ListViewとRecyclerViewの大きな違いの1つです。
RecyclerViewでは少し複雑になりますが、ListViewで直面した多くの問題は効率的に解決されます。
2)LayoutManager
これは、RecyclerViewにもたらされたもう1つの大規模な機能強化です。 ListViewで使用できるビューのタイプは、垂直ListViewのみです。水平ListViewを実装する公式の方法はありません。
RecyclerViewを使用して、
i) LinearLayoutManager -垂直リストと水平リストの両方をサポートします。
ii) StaggeredLayoutManager -スタッガードリストのようなPinterestをサポートします。
iii) GridLayoutManager -ギャラリーアプリで見られるグリッドの表示をサポートします。
そして、最良のことは、これらすべてを必要に応じて動的に実行できることです。
3)アイテムアニメーター
ListViewは優れたアニメーションをサポートしていませんが、RecyclerViewはまったく新しい次元をもたらします。 RecyclerView.ItemAnimator クラスを使用すると、ビューのアニメーション化が非常に簡単で直感的になります。
4)アイテム装飾
ListViewsの場合、境界線や仕切りを追加するなど、アイテムを動的に装飾することは簡単ではありませんでした。しかし、RecyclerViewの場合、 RecyclerView.ItemDecorator クラスは開発者に大きな制御を提供しますが、少し時間がかかり複雑になります。
5)OnItemTouchListener
AdapterView.OnItemClickListener インターフェイスのおかげで、ListViewでアイテムのクリックをインターセプトするのは簡単でした。ただし、RecyclerViewは RecyclerView.OnItemTouchListener によって開発者にはるかに強力で制御を提供しますが、開発者にとっては少し複雑になります。
欠点
i)リストビューよりもずっと複雑です。
ii)初心者がRecyclerViewを完全に理解するには、時間がかかる場合があります。
iii)コーディングライフを不必要に難しくする可能性があります。
iv)ListViewに必要な時間よりもはるかに多くの時間を費やす必要があります。