動的リストをカスタマイズする Android Jetpack の一部。
カスタマイズ可能
RecyclerView
オブジェクトを選択できます。標準クラスについては、このモジュールの
動的リストの作成:
RecyclerView は、ほとんどのデベロッパーが必要とする機能をすべて備えています。イン
多くの場合、ビューホルダーごとにビューを設計し、
適切なデータでビューを更新するコードです。ただし、アプリに
標準の動作をさまざまな方法で変更できます。
このドキュメントでは、可能なカスタマイズについて説明します。
レイアウトを変更する
RecyclerView
は、レイアウト マネージャーを使用して個々の
使用して、使用しなくなったアイテムビューを再利用するタイミングを
ユーザーに表示されます。ビューを再利用(リサイクル)するには、
マネージャーは、ビューの内容を
異なる要素があります。このようにビューをリサイクルすると、
不要なビューの作成を回避したり、パフォーマンスの
高い
findViewById()
ルックアップできます。Android サポート ライブラリには、3 つの標準レイアウト マネージャーが含まれています。
多数のカスタマイズ オプションが用意されています。
LinearLayoutManager
: は、アイテムを 1 次元のリストに配置します。使用LinearLayoutManager
を持つRecyclerView
は、 機能ListView
できます。GridLayoutManager
: は、上の正方形の正方形のように、アイテムを 2 次元のグリッドで配置します。 チェッカーボード以下でRecyclerView
を使用するGridLayoutManager
は、GridView
できます。StaggeredGridLayoutManager
: は、各列がわずかにずれた状態で 2 次元のグリッドにアイテムを配置します。 アメリカの国旗に付いた星のように
これらのレイアウト マネージャーがニーズに合わない場合は、次の方法で独自のレイアウト マネージャーを作成できます。
Kubernetes を拡張して、
RecyclerView.LayoutManager
使用します。
アイテム アニメーションを追加する
アイテムが変更されるたびに、RecyclerView
はアニメーターを使用します。
外観を変更します。このアニメーターは、Terraform ワークフローの
RecyclerView.ItemAnimator
クラスです。デフォルトでは、RecyclerView
は以下を使用します。
DefaultItemAnimator
アニメーションを追加します。カスタム アニメーションを使用する場合は、
独自のアニメーター オブジェクトを定義するには、
RecyclerView.ItemAnimator
。
リストアイテムを選択できるようにする
「
recyclerview-selection
ライブラリを使用すると、タップ操作で RecyclerView
リスト内のアイテムを選択できます
操作できます。これにより、広告の視覚的な表示を
選択します。選択を制御するポリシーも引き続き制御できます。
選択可能なアイテムや、選択可能なアイテム数などの
選択します。
RecyclerView
インスタンスに選択サポートを追加するには、次の手順を行います。
手順は次のとおりです。
- 使用する選択キーのタイプを決定して、
ItemKeyProvider
。選択したアイテムを識別するために使用できるキータイプは 3 つあります。
Parcelable
そのサブクラスをUri
String
Long
選択キーのタイプについて詳しくは、
SelectionTracker.Builder
。 - 導入
ItemDetailsLookup
。 - アイテムを更新
View
個のオブジェクト ユーザーが選択または選択するかどうかを反映するRecyclerView
それらの選択を解除します。選択ライブラリには、 選択します。実装時に提供
onBindViewHolder()
。 次の方法をおすすめします。onBindViewHolder()
で次を呼び出します。setActivated()
- 対象外setSelected()
- オン 次を含むView
オブジェクトtrue
またはfalse
(アイテムが を選択します。- ビューのスタイルを更新し、有効なステータスを表示します。水 推奨事項: 色状態 list リソースを使用してスタイル設定を構成します。
ActionMode
を使用する 選択項目に対してアクションを実行するためのツールをユーザーに提供します。- 解釈されたセカンダリ アクションを実行します。
SelectionTracker.Builder
ですべてを組み立てます。- 選択内容を含める アクティビティ 2 つのイベントがあります。
ItemDetailsLookup
を使用すると、選択ライブラリにアクセスできるようになります。
指定された RecyclerView
個のアイテムに関する情報が
MotionEvent
。
これは実質的には、
ItemDetails
バックアップされているインスタンス、または Cloud Logging から
RecyclerView.ViewHolder
構成されます
まず
SelectionTracker.SelectionObserver
選択内容が変更されたときに通知を受け取るようにできます。選択範囲が最初に作成されたら
ActionMode
を開始してユーザーに提示し、
選択できるようになります。たとえば、ファイルの削除ボタンを
ActionMode
バーをクリックし、バーの戻る矢印を接続して消去します
選択します。選択内容が空になった場合 - ユーザーが
終了アクション モードになります。
イベント処理パイプラインの終了時に、ライブラリは、
ユーザーがそのアイテムをタップして有効化しようとしている、または
ドラッグしようとしました。こうした解釈に対応するには、適切なリスナーを登録します。詳細
詳しくは、
SelectionTracker.Builder
。
次の例は、これらの要素をまとめる方法を示しています。
Kotlin
var tracker = SelectionTracker.Builder( "my-selection-id", recyclerView, StableIdKeyProvider(recyclerView), MyDetailsLookup(recyclerView), StorageStrategy.createLongStorage()) .withOnItemActivatedListener(myItemActivatedListener) .build()
Java
SelectionTracker tracker = new SelectionTracker.Builder<>( "my-selection-id", recyclerView, new StableIdKeyProvider(recyclerView), new MyDetailsLookup(recyclerView), StorageStrategy.createLongStorage()) .withOnItemActivatedListener(myItemActivatedListener) .build();
独自の
SelectionTracker
たとえば、アプリは同じ
RecyclerView.Adapter
RecyclerView
を初期化するために使用し、
SelectionTracker.Builder
。このため、ルールを作成した後は、
SelectionTracker
インスタンスを作成し、
RecyclerView.Adapter
。そうしないと、アイテムの
onBindViewHolder()
メソッドから選択されたステータス。
アクティビティのライフサイクル イベント全体で選択状態を保持するには、
選択トラッカーの
onSaveInstanceState()
および
onRestoreInstanceState()
アクティビティのメソッドから
onSaveInstanceState()
および
onRestoreInstanceState()
あります。また、アプリは一意の選択 ID を
SelectionTracker.Builder
コンストラクタ。この ID が必要な理由:
1 つのアクティビティまたはフラグメントが、複数の異なる選択可能なリストを持つ場合があります。
そのすべてを保存された状態に維持する必要があります。
参考情報
詳細については、次のリファレンスをご覧ください。
- ヒマワリ
デモアプリ。
RecyclerView
を使用します。 - 使用 スクロール可能なリストを表示する RecyclerView Codelab
- Android Kotlin の基礎: RecyclerView の基礎 Codelab