Android RecyclerViewについて


RecyclerViewとは?

  • アプリを使用すると、ショッピングモールでも掲示板でもリスト-リストされたページが表示されます!これは必須で、すべてのアプリケーションにリストを表示できます.
    大量のデータ(リスト、リスト)を表示するためのコンポーネント
  • ListView

  • より前に、リスト表示時にListViewが使用されていた.
  • ListViewは、スクロール中に画面を離れるときにビューを削除し、データを表示する必要があるときに再生成->削除->作成->削除->作成->作成->作成->削除->作成->作成->削除-...(無限反復)
    =>viewは毎回作成されるため、時間が長く、メモリ使用量が大きいという問題が発生します.再使用性も低下!
  • ViewHolderの登場


    これらのListViewの欠点を解決するために,ViewHolderが出現した.これは、見つかった
  • ビューを再探索しないように保存する方法です.
    =>findViewById()コール回数減少!
  • 個のビューを保存するオブジェクトと考えられます!
  • の左側で、ListViewは各ビューを作成します.
    ViewHolderのRecyclerViewを使用して、画面に上部の赤い枠を表示する必要はありません.保存してください.
    画面に一番下の赤い枠が表示されたら再度使用します!
  • RecyclerViewとListViewの違い

  • ViewHolderクラス
  • を利用
  • LayoutManagerサポート
    RecyclerViewでは、LayoutManagerを設定して、水平スクロール、垂直スクロール、グリッドなどのビューを配置できます.
    Listviewでは垂直にスクロールするしかありません.
  • ItemAnimatorサポート
    RecyclerViewでは、リストが消えて表示されたとき、ビューを追加または削除したときのアニメーションをサポートします.カスタマイズして使ってもいいです!
  • Notifyアダプタ
    RecyclerViewデータの変更を通知するNotifying Adapterが多様化している.
    `notifyDataSetChanged()` : 데이터가 변경됨을 알려준다.
    `notifyItemChanged(int position, Object payload)` : 특정 position 의 아이템이 변경됨을 알려준다. 
    `notifyItemInserted(int position)` : 특정 position 에 아이템이 추가되었음을 알려준다.
    등등 데이터 변경에 관련된 메소드들이 있다!
  • 逆に、ListViewはnotifyDataSetChanged()しかありません.データが変更されたことを示す方法にすぎないので、RecyclerViewの方法でより詳細に使用できます.