Recyclerview

メモリ使用量を最小限に抑えつつ、大規模なデータのセットを UI に表示します。

androidx.recyclerview グループ内のすべてのアーティファクトのリストを以下に示します。

アーティファクト 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
recyclerview 1.3.2 - 1.4.0-beta01 -
recyclerview-selection 1.1.0 - - 1.2.0-alpha01
このライブラリの最終更新日: 2024 年 8 月 21 日

依存関係の宣言

RecyclerView への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。

アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。

Groovy

dependencies {
    implementation "androidx.recyclerview:recyclerview:1.3.2"
    // For control over item selection of both touch and mouse driven selection
    implementation "androidx.recyclerview:recyclerview-selection:1.1.0"
}

Kotlin

dependencies {
    implementation("androidx.recyclerview:recyclerview:1.3.2")
    // For control over item selection of both touch and mouse driven selection
    implementation("androidx.recyclerview:recyclerview-selection:1.1.0")
}

依存関係について詳しくは、ビルド依存関係の追加をご覧ください。

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

バージョン 1.4

バージョン 1.4.0-beta01

2024 年 8 月 21 日

androidx.recyclerview:recyclerview:1.4.0-beta01 がリリースされました。1.4.0-alpha02 からの変更はありません。バージョン 1.4.0-beta01 に含まれる commit については、こちらをご覧ください。

互換性に関する注意事項: このバージョンは API 35(Vanilla Ice Cream)SDK 以降でのみコンパイルされます。アップグレード時に AGP(Android Gradle プラグイン)の警告が表示された場合は、警告を抑制できます。

バージョン 1.4.0-alpha02

2024 年 8 月 7 日

androidx.recyclerview:recyclerview:1.4.0-alpha02 がリリースされました。バージョン 1.4.0-alpha02 に含まれる commit については、こちらをご覧ください。

互換性に関する注意事項: このバージョンは API 35(Vanilla Ice Cream)SDK 以降でのみコンパイルされます。アップグレード時に AGP(Android Gradle プラグイン)の警告が表示された場合は、警告を抑制できます。

新機能

  • 可変リフレッシュ レートのサポート: RecyclerView は、Overscroller によるスクロール(フリングやスムーズ スクロールからの安定時など)に setFrameContentVelocity を呼び出すようになりました。(I8f8a4)。

API の変更

  • ViewCompat.LAYOUT_DIRECTION_ API のサポートが終了しました(I51710b/317055535)。
  • RecyclerView$LayoutManager#isLayoutReversed API を追加。(I4970e)。

その他の変更

  • 新しいプラットフォーム API へのアクセスに関する手動概要を削除しました。これは、AGP 7.3 以降(R8 バージョン 3.3 など)で R8 を使用する場合は API モデリングを介して自動的に行われ、AGP 8.1 以降(D8 バージョン 8.1 など)を使用する場合はすべてのビルドで行われるためです。AGP を使用していないクライアントには、D8 バージョン 8.1 以降に更新することが推奨されます。詳しくは、こちらの記事をご覧ください。(Ia60e0b/345472586)。
  • トレース セクションを RecyclerView のバインド/作成セクションにアイテム ビュータイプを追加し、RV プリフェッチに「強制 - 次のフレームが必要」というラベルを付ける(次のフレームでの使用が予想される場合)。したがって、可能な限り早く処理を開始する必要があります。(I8ec3eb/309523615)。
  • compileSdk を 35 に更新しました(詳しくは、上記の「互換性に関する注意事項」をご覧ください)。5dc41be

外部からの協力

  • minSdk から GestureDetector が利用できるようになったため、GestureDetectorCompat のサポートが終了しました。(Icc4cd)。

バージョン 1.4.0-alpha01

2023 年 10 月 18 日

androidx.recyclerview:recyclerview:1.4.0-alpha01 がリリースされました。バージョン 1.4.0-alpha01 に含まれる commit については、こちらをご覧ください

API の変更

  • RecyclerView$LayoutManager#isLayoutReversed API を追加。(I4970e)。

バグの修正

  • アニメーション中に散発的なクラッシュを引き起こすバグを修正(I42f22b)(1.3.2 にも含まれています)

バージョン 1.3.2

バージョン 1.3.2

2023 年 10 月 18 日

androidx.recyclerview:recyclerview:1.3.2 がリリースされました。バージョン 1.3.2 に含まれる commit については、こちらをご覧ください

バグの修正

  • アニメーション中に散発的なクラッシュを引き起こすバグを修正。(I42f22b)。

バージョン 1.3.1

バージョン 1.3.1

2023 年 7 月 26 日

androidx.recyclerview:recyclerview:1.3.1 がリリースされました。1.3.1-rc01 からの変更はありません。バージョン 1.3.1 に含まれる commit については、こちらをご覧ください

以前のリリースのリリースノートについては、リリースノート ページをご覧ください

バージョン 1.3.1-rc01

2023 年 5 月 24 日

androidx.recyclerview:recyclerview:1.3.1-rc01 がリリースされました。バージョン 1.3.1-rc01 に含まれる commit については、こちらをご覧ください

クラッシュを回避するために、このバージョンの RecyclerView に更新する際は、ViewPager2 を 1.1.0-beta02 以降に更新する必要があります

API の変更

  • アプリ内の RecyclerView 関連の問題のデバッグに役立つ新しい setDebugAssertionsEnabled メソッドと setVerboseLoggingEnabled メソッドを追加しました。(I514b9)。

バグの修正

  • onBind の呼び出し時に一時的にデタッチされたビューを一時的に再度アタッチすることで、ViewTreeLifecycleOwnerComposeView を含む)のユーザーがクラッシュする問題を修正しました。(I7244f2cb/265347515b/283288295)。

バージョン 1.3.0

バージョン 1.3.0

2023 年 3 月 8 日

androidx.recyclerview:recyclerview:1.3.0 がリリースされました。1.3.0-rc01 からの変更はありません。バージョン 1.3.0 に含まれる commit については、こちらをご覧ください

1.2.0 以降の重要な変更

  • このリリースでは、Jetpack Compose で使用した場合のパフォーマンスが改善されました(以前は 1.3.0-alpha021.3.0-beta01 に含まれていました)。Compose 1.2.0-beta02 以降を使用していて、以前の相互運用ガイドラインで説明した MyComposeAdapterDisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy を使用していた場合、デフォルトの状態から改善されなくなったため、これらを削除する必要があります。
  • 新しい ConcatAdapter.getWrappedAdapterAndPosition メソッドが追加され、SpanSizeLookup などの ViewHolder がない場合にラップされたアダプターの情報を取得できるようになりました(I2bd4cb/191543920)。

バージョン 1.3.0-rc01

2022 年 9 月 21 日

androidx.recyclerview:recyclerview:1.3.0-rc01 がリリースされました。バージョン 1.3.0-rc01 に含まれる commit については、こちらをご覧ください

  • 前回のリリースからの変更はありません

バージョン 1.3.0-beta02

2022 年 8 月 10 日

androidx.recyclerview:recyclerview:1.3.0-beta02 がリリースされました。バージョン 1.3.0-beta02 に含まれる commit については、こちらをご覧ください

API の変更

  • 1.3.0-beta01 で追加された null 可能性アノテーションが Kotlin ユーザーに対してソース互換性のない大幅な変更をもたらしたため、これらのアノテーションを削除しました。(I7a258I1557e6I8db76

バージョン 1.3.0-beta01

2022 年 6 月 29 日

androidx.recyclerview:recyclerview:1.3.0-beta01 がリリースされました。バージョン 1.3.0-beta01 に含まれる commit については、こちらをご覧ください

新機能

  • このベータ版リリースには、Jetpack Compose で使用した場合のパフォーマンス向上が含まれています(以前は 1.3.0-alpha02 に含まれていました)。Compose 1.2.0-beta02 以降を使用していて、以前の相互運用性ガイドに記載されていた MyComposeAdapterDisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy を使用していた場合は、デフォルトの状態を上回る改善が行われなくなるため、それらを削除する必要があります

API の変更

  • Java ユーザー向けの lint 警告と Kotlin ユーザー向けの相互運用性を改善するため、多くのメソッドとパラメータに null 可能性アノテーションを追加しました。これは、一部の Kotlin ユーザーには互換性を破る変更となる可能性があり、一部の Java ユーザーには追加の lint 警告 / エラーが発生する可能性があります。(I61829b/236487044; Ia0b6f; I6f119b/236487209; Ibe1deb/236487210

バグの修正

  • a11y ノード情報クラス名を設定して、a11y サービスでグリッドがグリッドとして処理されるようにしました。(I12812

バージョン 1.3.0-alpha02

2022 年 4 月 6 日

androidx.recyclerview:recyclerview:1.3.0-alpha02 がリリースされました。バージョン 1.3.0-alpha02 に含まれる commit については、こちらをご覧ください

API の変更

  • 将来の SDK 用に試験運用版の BuildCompat メソッドを追加しました。(Iafd82b/207528937
  • 新しい ConcatAdapter.getWrappedAdapterAndPosition メソッドが追加され、ViewHolder がない場合に、ラップされたアダプタの情報(SpanSizeLookup など)を取得できるようになりました。(I2bd4cb/191543920

バグの修正

  • 新しい AndroidX PoolingContainer ライブラリを統合しました。(Ib89d2
  • ユーザー補助アクションのスクロール距離を調整しました。(If74ae

バージョン 1.3.0-alpha01

2021 年 9 月 15 日

androidx.recyclerview:recyclerview:1.3.0-alpha01 がリリースされました。バージョン 1.3.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

  • ストレッチ オーバースクロール RecyclerView のサポートを追加しました。(Iab877

RecyclerView-Selection バージョン 1.2.0

バージョン 1.2.0-alpha01

2021 年 5 月 5 日

androidx.recyclerview:recyclerview-selection:1.2.0-alpha01 がリリースされました。バージョン 1.2.0-alpha01 に含まれる commit については、こちらをご覧ください

バグの修正

  • エントリがまだリサイクルされていない間に KeyProvider のキー / 位置のマッピングが失われる問題を修正しました。(b/145767095

バージョン 1.2.1

バージョン 1.2.1

2021 年 6 月 2 日

androidx.recyclerview:recyclerview:1.2.1 がリリースされました。バージョン 1.2.1 に含まれる commit については、こちらをご覧ください

バグの修正

  • onViewRecycled コールバックでクエリした場合に、ConcatAdapter 内の ViewHolder が適切なアダプター位置を返すようになりました。(b/187339376

バージョン 1.2.0

バージョン 1.2.0

2021 年 4 月 7 日

androidx.recyclerview:recyclerview:1.2.0 がリリースされました。バージョン 1.2.0 に含まれる commit については、こちらをご覧ください

1.1.0 以降の主な変更

ConcatAdapter: この新しいアダプタを使用すると、同じ RecyclerView で複数の Adapter を簡単に連結できます。詳しくは、こちらのブログ投稿をご覧ください。

Lazy State Restoration: RecyclerView Adapter で、コンテンツが読み込まれるまで状態の復元を待機できるようになりました。詳しくは、こちらのドキュメントをご覧ください。

バージョン 1.2.0-rc01

2021 年 3 月 24 日

androidx.recyclerview:recyclerview:1.2.0-rc01 がリリースされました。バージョン 1.2.0-rc01 に含まれる commit については、こちらをご覧ください

バグの修正

  • ConcatAdapter.Config.BuilderConfig.DEFAULT と一致するデフォルト値が追加されました(b/157169835

バージョン 1.2.0-beta02

2021 年 2 月 24 日

androidx.recyclerview:recyclerview:1.2.0-beta02 がリリースされました。バージョン 1.2.0-beta02 に含まれる commit については、こちらをご覧ください

バグの修正

  • 上パディングの存在によってパディングの領域が考慮され、右側へのオーバースクロール時のグロー効果がパディングの上方向に移動してしまう問題を修正しました。(I6b61d, b/118399122

バージョン 1.2.0-beta01

2020 年 12 月 2 日

androidx.recyclerview:recyclerview:1.2.0-beta01 がリリースされました。1.2.0-alpha06 からの変更はありません。バージョン 1.2.0-beta01 に含まれる commit については、こちらをご覧ください。

バージョン 1.2.0-alpha06

2020 年 10 月 1 日

androidx.recyclerview:recyclerview:1.2.0-alpha06 がリリースされました。バージョン 1.2.0-alpha06 に含まれる commit については、こちらをご覧ください。

新機能

  • 複数の RecyclerListeners を追加するためのサポートを追加しました。(I70ad8b/145767095

API の変更

  • RecyclerView.setRecyclerListener(RecyclerListener)のサポートが終了しました。(I70ad8b/145767095

バージョン 1.2.0-alpha05

2020 年 7 月 22 日

androidx.recyclerview:recyclerview:1.2.0-alpha05 がリリースされました。バージョン 1.2.0-alpha05 に含まれる commit については、こちらをご覧ください。

バグの修正

  • RecyclerView に項目が 1 つしかなく、その項目がフォーカスされている場合、前方または後方をフォーカスするとフォーカスが移動しない問題を修正しました。(6f36b3
  • StaggeredGridLayoutManagerArrayIndexOutOfBoundsException を修正しました。(49b601b/122303625b/74877618b/160193663b/37086625
  • 特定の状況で RecyclerView がその子を表示せずに終わる不適切な測定のバグを修正しました。(89040cb/138734786

外部からの協力

  • Facebook 社の Kolin Krewinkel 氏のご協力に感謝いたします。

バージョン 1.2.0-alpha04

2020 年 6 月 24 日

androidx.recyclerview:recyclerview:1.2.0-alpha04 がリリースされました。バージョン 1.2.0-alpha04 に含まれる commit については、こちらをご覧ください

API の変更

  • 異なるデータ結合動作との混同を避けるため、MergeAdapter の名前を ConcatAdapter に変更しました(c0540cb/158019211)。

バグの修正

  • 表示項目がすべて削除されたときの自動スクロールを改善しました(fe8670b/154124815)。

バージョン 1.2.0-alpha03

2020 年 4 月 29 日

androidx.recyclerview:recyclerview:1.2.0-alpha03 がリリースされました。バージョン 1.2.0-alpha03 に含まれる commit については、こちらをご覧ください

新機能

  • ネストされたスクロールと連携するスクロールをプログラムによって行える nestedScrollBy メソッドを、RecyclerView に追加しました(Ibaa58)。

バージョン 1.2.0-alpha02

2020 年 4 月 1 日

androidx.recyclerview:recyclerview:1.2.0-alpha02 がリリースされました。バージョン 1.2.0-alpha02 に含まれる commit については、こちらをご覧ください。

RecyclerView のこれ以降のバージョンは、ViewPager2 の古いバージョンと互換性がありません。現在 androidx.viewpager2:viewpager2:1.0.0 以前を使用している場合、確実に androidx.viewpager2:viewpager2:1.1.0-alpha01 に更新してください。

新機能

  • MergeAdapter

    • MergeAdapter: 複数のアダプタをリニアに結合できる新しい RecyclerView アダプタです。
    MyAdapter adapter1 = ...;
    AnotherAdapter adapter2 = ...;
    MergeAdapter merged = new MergeAdapter(adapter1, adapter2);
    recyclerView.setAdapter(mergedAdapter);
    

    上記のサンプルの場合、MergeAdapter は adapter1adapter2 の順にアイテムを表示します。

  • RecyclerView.Adapter 遅延状態の復元:

    • 新しい API を RecyclerView.Adapter クラスに追加しました。これにより Adapter はレイアウト状態を復元するタイミングを制御できます。

    • たとえば下記を呼び出して、

    myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);
    

    スクロール位置を復元する前に、Adapter が空でない状態になるまで RecyclerView を待機させることができます。

  • CollectionInfo と CollectionItemInfo がデフォルトで入力されなくなります。

    • ユーザー補助機能サービス(Talkback など)で引き続きカウントとアイテム インデックスを表示する場合、CountInfo と CollectionItemInfo を自分で入力する必要があります。

    • これらのオブジェクトは、ユーザーが認識したアイテム(区切り、ヘッダー、複数の認識アイテムを表す RecyclerView アイテムなど)を判別できないため、フレームワークで入力されません。

バグの修正

  • ビューポートのサイズが変更されたときに RecyclerView でビューポートの外側の View へのアンカリングが回避されるようになりました。
  • 1 つ目のリストの元のアイテムが 2 つ目のリストで重複している場合に誤って差分が計算される場合がある、DiffUtil のバグを修正しました。(b/123376278

バージョン 1.2.0-alpha01

2019 年 12 月 18 日

androidx.recyclerview:recyclerview:1.2.0-alpha01 がリリースされました。バージョン 1.2.0-alpha01 に含まれる commit については、こちらをご覧ください

バグの修正

  • RTL 描画とタッチ精度に関する FastScroller の軽微な問題を修正しました(b/143789932aosp/1130438
  • ItemTouchHelper アニメーションの実行中に ItemTouchHelper を RecyclerView から削除したときのクラッシュを修正しました(b/140447176aosp/1167575

バージョン 1.1.0

バージョン 1.1.0

2019 年 11 月 20 日

androidx.recyclerview:recyclerview:1.1.0 がリリースされました。バージョン 1.1.0 に含まれる commit については、こちらをご覧ください

1.0.0 以降の重要な変更

  • PagerSnapHelperLinearSnapHelper で、clipToPadding の値に関係なく、RecyclerView のパディングが考慮されるようになりました(b/139452422b/139012032aosp/1103182aosp/1106715aosp/1130728
  • RecyclerView.setLayoutTransition(LayoutTransition) は正式にサポートが終了しており、非 null 値で呼び出されると IllegalArgumentException をスローします。代わりに RecyclerView.setItemAnimator(ItemAnimator) を使用してください(aosp/839414
  • aosp/723649: RecyclerView が NestedScrollingChild3 を実装し、ネストされたスクロールのどの親もネストされたスクロール距離を消費しなくなった場合に通知できるようになりました。デベロッパーのコードが現在 RecyclerView.onNestedScroll(View, int, int, int, int, int) をオーバーライドしている場合、それはもう呼び出されない可能性が高いので、代わりに RecyclerView.onNestedScroll(View, int, int, int, int, int, int[]) をオーバーライドする必要があります。
  • RecyclerView にデフォルトのスタイル属性 recyclerViewStyle が追加されました。これにより、テーマのデフォルト スタイルを設定できます。
  • ViewCompat accessibility actions API で RecyclerView ItemDelegate が破損することはなくなりました。
  • LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) をオーバーライドして、関連付けられた RecyclerView の左右どちらかに追加するレイアウト スペースの量をカスタマイズできます。(aosp/931259
  • smoothScrollBy の新しいオーバーロード RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration) を追加しました。これにより、アニメーションの所要時間をミリ秒単位で指定できます。(aosp/952807

バージョン 1.1.0-rc01

2019 年 10 月 23 日

androidx.recyclerview:recyclerview:1.1.0-rc01 がリリースされました。バージョン 1.1.0-rc01 に含まれる commit については、こちらをご覧ください

バグの修正

  • RecyclerViewAccessibilityDelegate.ItemDelegate をオーバーライドしたときに「アプリが応答しない」問題を修正しました(aosp/1138057aosp/1133434

バージョン 1.1.0-beta05

2019 年 10 月 9 日

androidx.recyclerview:recyclerview:1.1.0-beta05 がリリースされました。バージョン 1.1.0-beta05 に含まれる commit については、こちらをご覧ください

API の変更

  • aosp/1106715aosp/1103182 に対処して、LinearSnapHelper と PagerSnapHelper が clipToPadding の値にかかわらず、RecyclerView の境界の中心にあるビューを、パディングを除いて返すようになりました。(aosp/1130728

バグの修正

  • RecyclerView が、RecyclerView の子に重複するユーザー補助ノードを生成していた問題を修正しました。(aosp/1130618
  • RecyclerViews の仮想ユーザー補助階層が機能しない問題を修正しました。
  • カスタム ItemDelegates が使用されない問題を修正しました。

バージョン 1.1.0-beta04

2019 年 9 月 5 日

androidx.recyclerview:recyclerview:1.1.0-beta04 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

バグの修正

  • PagerSnapHelperLinearSnapHelperclipToPadding の値に関係なく、RecyclerView のパディングが考慮されるようになりました(b/139452422b/139012032aosp/1103182aosp/1106715
  • ネストされた事前スクロールによって NestedScrollingParent がスクロールしたときに、RecyclerView がタッチ インターセプトを禁止していなかったバグを修正しました(b/138668210aosp/1105373)。これは、ViewPager2 などのライブラリで役立ちます。
  • ネストされた事前スクロールがディスパッチされる前に、RecyclerView が常に SCROLL_STATE_DRAGGING になるようになりました(aosp/1105373
  • ジェスチャーがタッチスロップを超えるまでは、ネストされた事前スクロールが実行されなくなりました(b/139530818aosp/1105373
  • ネストされた事前スクロールにディスパッチされた dx 引数と dy 引数は、RecyclerView がその方向にスクロールできない場合、ゼロになります(aosp/1105373

バージョン 1.1.0-beta03

2019 年 8 月 15 日

androidx.recyclerview:recyclerview:1.1.0-beta03 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

API の変更

  • RecyclerView が View.onScrollChanged(int l, int t, int oldl, int oldt) を介してスクロール距離をディスパッチするようになったため、ユーザー補助サービスにスクロールの変化が正確に通知されます。(aosp/1007823

バグの修正

  • RecyclerView とユーザー補助に関連する主要なバグスタック オーバーフローのバグを修正しました。(aosp/1099577

バージョン 1.1.0-beta02

2019 年 8 月 7 日

androidx.recyclerview:recyclerview:1.1.0-beta02 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

新機能

  • RecyclerView にデフォルトのスタイル属性 recyclerViewStyle が追加されました。これにより、テーマのデフォルト スタイルを設定できます。

バグの修正

  • スクロールしたときのタッチ インターセプトを RecyclerView が禁止していなかったために、NestedScrollingParent がスクロールするというバグを修正しました。(b/131115697aosp/1055911

バージョン 1.1.0-beta01

2019 年 7 月 2 日

androidx.recyclerview:recyclerview:1.1.0-beta01 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

新機能

  • ユーザー補助イベントを介してスクロールが開始されると、RecyclerView がネストされたスクロールに参加するようになりました。(aosp/973584

バージョン 1.1.0-alpha06

2019 年 6 月 5 日

androidx.recyclerview:recyclerview:1.1.0-alpha06androidx.recyclerview:recyclerview-selection:1.1.0-alpha06 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

新機能

  • smoothScrollBy の新しいオーバーロード RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration) を追加しました。これにより、アニメーションの所要時間をミリ秒単位で指定できます。(aosp/952807

API の変更

  • GridLayoutManagerStaggeredGridLayoutManager は、ユーザー補助用のヘッダーとするフルスパン アイテムへの自動ラベル付けを行わなくなりました(aosp/969703
  • recyclerview-selection での選択の順序(作成時間順)を保持します(aosp/937279

バグの修正

  • ネストされたスクロールの状態で、RecyclerView が誤った速度でフリングしていたバグを修正しました(aosp/961642
  • recyclerview-selection の安定性を改善しました(aosp/960213aosp/926296

バージョン 1.1.0-alpha05

2019 年 5 月 7 日

androidx.recyclerview:recyclerview:1.1.0-alpha05androidx.recyclerview:recyclerview-selection:1.1.0-alpha05 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

新機能

  • LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) をオーバーライドして、関連付けられた RecyclerView の左右どちらかに追加するレイアウト スペースの量をカスタマイズできます。(aosp/931259

API の変更

  • DividerItemDecoration ドローアブルを取得する API を追加しました(aosp/937282
  • 両側にカスタムのレイアウト スペースを追加できる新しいメカニズムを優先し、LinearLayout.getExtraLayoutSpace(RecyclerVew.State) のサポートを終了します。新しいメソッドは LinearLayout.calculateExtraLayoutSpace(RecyclerView.state, int[]) です(aosp/931259

バグの修正

  • ジェスチャー選択のクリーンアップ(aosp/940781
  • 選択の順序(作成時間別)を保持(b/128455535

バージョン 1.1.0-alpha04

2019 年 4 月 3 日

androidx.recyclerview:recyclerview:1.1.0-alpha04 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

バグの修正

  • 以前は RV OnItemTouchListener が ACTION_UP でインターセプトできなかったため、OnItemTouchListener が他のコードから ACTION_UP に応答することをブロックできませんでしたが、修正されました。(aosp/916137

バージョン 1.1.0-alpha03

2019 年 3 月 13 日

androidx.recyclerview:recyclerview:1.1.0-alpha03 がリリースされました。このバージョンに含まれる commit の完全なリストについては、こちらをご覧ください。

新機能

  • GridLayoutManager: オプトイン、高解像度の GridLayoutManager スクロールバーの寸法推定(aosp/838836):
    • スパン情報を使用して、GridLayoutManager のスクロールバーの寸法を推定します。
    • 有効にするには、GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) を呼び出して true を渡します。
    • 詳細については、GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) に関するドキュメントをご覧ください。

バグの修正

  • ユーザー補助: ViewHolder がリサイクルされてからリバウンドすると、RecyclerView の RecyclerViewAccessibilityDelegate に関連付けられた ItemDelegate が ViewHolder の itemView に関連付けられず、ユーザー補助に障害が出るというバグがありましたが、修正されました(aosp/917740

バージョン 1.1.0-alpha02

2019 年 1 月 30 日

androidx.recyclerview:recyclerview 1.1.0-alpha02 がリリースされました。

API の変更

  • RecyclerView.setLayoutFrozen(boolean)RecyclerView.isLayoutFrozen() のサポートを終了し、RecyclerView.suppressLayout(boolean)RecyclerView.isLayoutSuppressed() に置き換えました。(aosp/839414
  • RecyclerView.setLayoutTransition(LayoutTransition) は正式にサポートが終了しており、非 null 値で呼び出されると IllegalArgumentException をスローします。(aosp/839414

バグの修正

  • SmoothScroller が停止しない RV のバグを修正しました(aosp/843741
  • スクロール アニメーションの終了時に SCROLL_STATE_IDLE が呼び出されないことがあるバグを修正しました(aosp/812576

バージョン 1.1.0-alpha01

2018 年 12 月 3 日

androidx.recyclerview 1.1.0-alpha01androidx.recyclerview-selection 1.1.0-alpha01 がリリースされました。

androidx.recyclerview 1.1.0-alpha01

API の変更

  • aosp/723649: RecyclerView が NestedScrollingChild3 を実装し、ネストされたスクロールのどの親もネストされたスクロール距離を消費しなくなった場合に通知できるようになりました。デベロッパーのコードが現在 RecyclerView.onNestedScroll(View, int, int, int, int, int) をオーバーライドしている場合、それはもう呼び出されない可能性が高いので、代わりに RecyclerView.onNestedScroll(View, int, int, int, int, int, int[]) をオーバーライドする必要があります。

バグの修正

  • TransitionManager を使用して RecyclerView のアイテムを折りたたむ / 展開するときのクラッシュを修正しました。(b/37129527
  • RecyclerView.OnItemTouchListener の動作がビューシステムの onInterceptTouchEventonTouchEvent の動作と矛盾するバグを修正しました(aosp/721235
  • スムーズなスクロールに関連するエッジケースのバグをいくつか修正しました(aosp/729718aosp/747168aosp/812576
  • 一般的でない子ビューを処理するように PagerSnapHelper のスナップ方法を修正しました(aosp/795752

androidx.recyclerview-selection 1.1.0-alpha01

バグの修正

  • 選択を削除してデータセットを変更したときの ConcurrentModificationException を修正しました。

RecyclerView-Selection バージョン 1.1.0

RecyclerView-Selection バージョン 1.1.0

2021 年 1 月 27 日

androidx.recyclerview:recyclerview-selection:1.1.0 がリリースされました。バージョン 1.1.0 に含まれる commit については、こちらをご覧ください

1.0.0 以降の主な変更

  • 多くの安定性改善。
  • SelectionTracker.BuilderwithGestureTooltypes メソッドと withPointerTooltypes メソッドのサポートを終了しました。これらのメソッドは、今後のリリースで削除される予定です。

RecyclerView-Selection バージョン 1.1.0-rc03

2020 年 10 月 1 日

androidx.recyclerview:recyclerview-selection:1.1.0-rc03 がリリースされました。バージョン 1.1.0-rc03 に含まれる commit については、こちらをご覧ください

バグの修正

修正のテストとフィードバックにご協力いただいた Stefan Kiesler 氏に感謝いたします。

  • アクティブな選択中に子ビューの OnClickListener が予期せず呼び出される問題を修正しました。
  • マウスハンドラ(バンド選択) > 予期しないスクロールを適切に処理できるようになりました。(b/167821507

RecyclerView-Selection バージョン 1.1.0-rc02

2020 年 9 月 2 日

androidx.recyclerview:recyclerview-selection:1.1.0-rc02 がリリースされました。バージョン 1.1.0-rc02 に含まれる commit については、こちらをご覧ください

ハイライト

  • 入力処理における 1.0 からのパフォーマンス低下の問題に対処しました。
  • onRequestDisallowInterceptTouchEvent を使用して ItemTouchHelper と連携する(スワイプすると消える)ように、ライブラリを更新しました。

バグの修正

  • 選択ライブラリが GestureDetector イベントの解釈を誤り、アクティブな選択中にタップが無効になる問題を修正しました。(b/165030422
  • 選択を更新した際に、アダプターからのアイテムの削除が反映されない問題を修正しました。(b/138932671
  • SelectionTracker で選択がアクティブになっているときに、RecyclerView アイテムによって onClick イベントが発生する問題を修正しました。(b/161162268
  • onRequestDisallowInterceptTouchEvent が正しく処理されるようになりました。
  • Android Q でのマウス スクロール中に ”Cannot call this method in a scroll callback” と表示される問題を修正しました。
  • RecyclerView インスタンスの要件を明示するようにドキュメントを更新しました(特に StableIdKeyProvider)。

Recyclerview-Selection バージョン 1.1.0-rc01

2020 年 2 月 5 日

androidx.recyclerview:recyclerview-selection:1.1.0-rc01 がリリースされました。バージョン 1.1.0-rc01 に含まれる commit については、こちらをご覧ください

バグの修正

  • スクロール可能な AppBarLayout を操作する場合に、ジェスチャー選択でのスクロールが難しいという問題を修正しました(aosp/1193934

RecyclerView-Selection バージョン 1.1.0-beta01

2019 年 12 月 4 日

androidx.recyclerview:recyclerview-selection:1.1.0-beta01 がリリースされました。バージョン 1.1.0-beta01 に含まれる commit については、こちらをご覧ください

内部状態の防御チェックと管理に関連する安定性を全般的に改善。

バグの修正

API の変更

  • 選択キータイプ パラメータが欠落しているクラスおよびメソッドに、そのパラメータを追加しました。
  • サポートが終了したメソッド:
    • SelectionTracker.Builder#withPointerTooltype
    • SelectionTracker.Builder#withGestureTooltype
    • これらのメソッドは、デベロッパーがポインタやジェスチャーの動作をデフォルト以外のツールタイプにマッピングするためのものです*。目的に問題があったわけではなく、使用を重ねるうちに、入力動作に関してユーザーが期待することはツールタイプに依存することが明らかになりました。また、Android 入力システムに関する限り、「パッシブ」タッチペンは FINGER ツールタイプです。
    • デフォルトのツールタイプは、ジェスチャーの場合 FINGER、ポインタの場合 MOUSE となります。