Recyclerview
androidx.recyclerview グループ内のすべてのアーティファクトのリストを以下に示します。
| アーティファクト | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
|---|---|---|---|---|
| recyclerview | 1.4.0 | - | - | - |
| recyclerview-selection | 1.2.0 | - | - | - |
依存関係の宣言
RecyclerView への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
dependencies { implementation "androidx.recyclerview:recyclerview:1.4.0" // For control over item selection of both touch and mouse driven selection implementation "androidx.recyclerview:recyclerview-selection:1.2.0" }
Kotlin
dependencies { implementation("androidx.recyclerview:recyclerview:1.4.0") // For control over item selection of both touch and mouse driven selection implementation("androidx.recyclerview:recyclerview-selection:1.2.0") }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
バージョン 1.4
バージョン 1.4.0
2025 年 1 月 15 日
androidx.recyclerview:recyclerview:1.4.0 がリリースされました。バージョン 1.4.0 に含まれるコミットは次のとおりです。
RecyclerView 1.3.2 以降の重要な変更
Adaptiveリフレッシュ レートのサポート:RecyclerViewがOverScrollerを介してスクロールするときにsetFrameContentVelocityを呼び出すようになりました(フリングからのセットリングやスムーズ スクロールなど)。(I8f8a4)
バージョン 1.4.0-rc01
2024 年 9 月 18 日
androidx.recyclerview:recyclerview:1.4.0-rc01 がリリースされました。1.4.0-alpha02 からの変更はありません。バージョン 1.4.0-rc01 に含まれる commit については、こちらをご覧ください。
1.3.2 以降の変更
互換性に関する注意事項: このバージョンは、API 35(Vanilla Ice Cream)SDK 以降でのみコンパイルされます。アップグレード時に AGP(Android Gradle プラグイン)の警告が表示された場合は、非表示にできます。
新機能
Adaptiveリフレッシュ レートのサポート:RecyclerViewがOverScrollerを介してスクロールするときにsetFrameContentVelocityを呼び出すようになりました(フリングからのセットリングやスムーズ スクロールなど)。(I8f8a4)
API の変更
RecyclerView$LayoutManager#isLayoutReversedAPI を追加しました。(I4970e)
その他の変更
- 新しいプラットフォーム API へのアクセスの手動アウトラインを削除しました。これは、AGP 7.3 以降(R8 バージョン 3.3 など)で R8 を使用する場合、および AGP 8.1 以降(D8 バージョン 8.1 など)を使用するすべてのビルドで、API モデリングによって自動的に行われるためです。AGP を使用していないクライアントは、D8 バージョン 8.1 以降にアップデートすることをおすすめします。詳しくは、こちらの記事をご覧ください。(Ia60e0、b/345472586)
RecyclerViewバインディング/作成トレース セクションにアイテムビュー タイプを追加し、RV プリフェッチが次のフレームで使用されることが予想され、できるだけ早く処理を開始する必要がある場合は、RV プリフェッチに「強制 - 次のフレームで必要」というラベルを付けます。(I8ec3e、b/309523615)compileSdkを 35 に更新しました(詳細については、上記の「互換性に関する注意事項」をご覧ください)。5dc41be
バージョン 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 を非推奨にしました(I51710、b/317055535)RecyclerView$LayoutManager#isLayoutReversedAPI を追加しました。(I4970e)
その他の変更
- 新しいプラットフォーム API へのアクセスの手動アウトラインを削除しました。これは、AGP 7.3 以降(R8 バージョン 3.3 など)で R8 を使用する場合、および AGP 8.1 以降(D8 バージョン 8.1 など)を使用するすべてのビルドで、API モデリングによって自動的に行われるためです。AGP を使用していないクライアントは、D8 バージョン 8.1 以降にアップデートすることをおすすめします。詳しくは、こちらの記事をご覧ください。(Ia60e0、b/345472586)
RecyclerViewバインディング/作成トレース セクションにアイテムビュー タイプを追加し、RV プリフェッチが次のフレームで使用されることが予想され、できるだけ早く処理を開始する必要がある場合は、RV プリフェッチに「強制 - 次のフレームで必要」というラベルを付けます。(I8ec3e、b/309523615)compileSdkを 35 に更新しました(詳細については、上記の「互換性に関する注意事項」をご覧ください)。5dc41be
外部からの協力
GestureDetectorがminSdkから利用可能になったため、GestureDetectorCompatは非推奨となりました。(Icc4cd)
バージョン 1.4.0-alpha01
2023 年 10 月 18 日
androidx.recyclerview:recyclerview:1.4.0-alpha01 がリリースされました。バージョン 1.4.0-alpha01 に含まれる commit については、こちらをご覧ください。
API の変更
RecyclerView$LayoutManager#isLayoutReversedAPI を追加しました。(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の呼び出し時に一時的に分離されたビューを一時的に再接続することで、ViewTreeLifecycleOwner(ComposeViewを含む)のユーザーのクラッシュを修正しました。(I7244f2c、b/265347515、b/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-alpha02 と 1.3.0-beta01 に含まれていました)。Compose
1.2.0-beta02以降を使用していて、以前の相互運用性ガイドに記載されていたMyComposeAdapterとDisposeOnViewTreeLifecycleDestroyedViewCompositionStrategyを使用していた場合は、デフォルトの状態を上回る改善が行われなくなるため、それらを削除する必要があります。 - 新しい
ConcatAdapter.getWrappedAdapterAndPositionメソッドが追加され、SpanSizeLookupなどViewHolderがない場合に、ラップされたアダプタの情報(ViewHolderなど)を取得できるようになりました。(I2bd4c、b/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 ユーザーに対してソース互換性のない大幅な変更をもたらしたため、これらのアノテーションを削除しました。(I7a258、I1557e6、I8db76)
バージョン 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以降を使用していて、以前の相互運用性ガイドに記載されていたMyComposeAdapterとDisposeOnViewTreeLifecycleDestroyedViewCompositionStrategyを使用していた場合は、デフォルトの状態を上回る改善が行われなくなるため、それらを削除する必要があります。
API の変更
- Java ユーザー向けの lint 警告と Kotlin ユーザー向けの相互運用性を改善するため、多くのメソッドとパラメータに null 可能性アノテーションを追加しました。これは、一部の Kotlin ユーザーには互換性を破る変更となる可能性があり、一部の Java ユーザーには追加の lint 警告 / エラーが発生する可能性があります。(I61829、b/236487044; Ia0b6f; I6f119、b/236487209; Ibe1de、b/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メソッドを追加しました。(Iafd82、b/207528937) - 新しい
ConcatAdapter.getWrappedAdapterAndPositionメソッドが追加され、ViewHolder がない場合に、ラップされたアダプタの情報(SpanSizeLookupなど)を取得できるようになりました。(I2bd4c、b/191543920)
バグの修正
バージョン 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
2025 年 5 月 20 日
androidx.recyclerview:recyclerview-selection:1.2.0 がリリースされました。バージョン 1.2.0 に含まれるcommit
1.1.0 以降の重要な変更
- マウスを少し動かしただけでクリックがドラッグに変換される問題を修正しました。
- エントリがまだリサイクルされていない間に KeyProvider のキー/位置のマッピングが失われる問題を修正しました。
バージョン 1.2.0-rc01
2025 年 5 月 7 日
androidx.recyclerview:recyclerview-selection:1.2.0-rc01 がリリースされました。バージョン 1.2.0-rc01 に含まれる commit はこちらをご覧ください。
バグの修正
- マウスを少し動かしただけでクリックがドラッグに変換される問題を修正しました。(Ie9106)
バージョン 1.2.0-beta01
2025 年 4 月 9 日
androidx.recyclerview:recyclerview-selection:1.2.0-beta01 がリリースされました。バージョン 1.2.0-beta01 に含まれる commit はこちらをご覧ください。
API の変更
ViewCompat.LAYOUT_DIRECTION_API を非推奨にしました(I51710、b/317055535)
バグの修正
- このライブラリは、型使用である JSpecify nullness アノテーションを使用するようになりました。Kotlin デベロッパーは、次のコンパイラ オプションを使用して、正しい使用を強制する必要があります。
-Xjspecify-annotations=strict(これは、Kotlin コンパイラのバージョン 2.1.0 以降のデフォルトです)。(I03b80、b/326456246)
バージョン 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 を簡単に連結できます。詳しくは、こちらのブログ投稿をご覧ください。
- この変更に伴い、
ViewHolder.getAdapterPositionはサポート終了となり、2 つの新しいメソッドに置き換えられました。- getBindingAdapterPosition は、アイテムをバインドした Adapter に対する相対位置を返します。
- getAbsoluteAdapterPosition は、RecyclerView 全体に対する相対位置を返します。
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.BuilderにConfig.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 を追加するためのサポートを追加しました。(I70ad8、b/145767095)
API の変更
- RecyclerView.setRecyclerListener(RecyclerListener)のサポートが終了しました。(I70ad8、b/145767095)
バージョン 1.2.0-alpha05
2020 年 7 月 22 日
androidx.recyclerview:recyclerview:1.2.0-alpha05 がリリースされました。バージョン 1.2.0-alpha05 に含まれる commit については、こちらをご覧ください。
バグの修正
- RecyclerView に項目が 1 つしかなく、その項目がフォーカスされている場合、前方または後方をフォーカスするとフォーカスが移動しない問題を修正しました。(6f36b3)
StaggeredGridLayoutManagerのArrayIndexOutOfBoundsExceptionを修正しました。(49b601、b/122303625、b/74877618、b/160193663、b/37086625)- 特定の状況で RecyclerView がその子を表示せずに終わる不適切な測定のバグを修正しました。(89040c、b/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に変更しました(c0540c、b/158019211)。
バグの修正
- 表示項目がすべて削除されたときの自動スクロールを改善しました(fe8670、b/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 は
adapter1、adapter2の順にアイテムを表示します。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/143789932、aosp/1130438)
- ItemTouchHelper アニメーションの実行中に ItemTouchHelper を RecyclerView から削除したときのクラッシュを修正しました(b/140447176、aosp/1167575)
バージョン 1.1.0
バージョン 1.1.0
2019 年 11 月 20 日
androidx.recyclerview:recyclerview:1.1.0 がリリースされました。バージョン 1.1.0 に含まれる commit については、こちらをご覧ください。
1.0.0 以降の重要な変更
PagerSnapHelperとLinearSnapHelperで、clipToPaddingの値に関係なく、RecyclerView のパディングが考慮されるようになりました(b/139452422、b/139012032、aosp/1103182、aosp/1106715、aosp/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/1138057、aosp/1133434)
バージョン 1.1.0-beta05
2019 年 10 月 9 日
androidx.recyclerview:recyclerview:1.1.0-beta05 がリリースされました。バージョン 1.1.0-beta05 に含まれる commit については、こちらをご覧ください。
API の変更
- aosp/1106715 と aosp/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 については、こちらをご覧ください。
バグの修正
PagerSnapHelperとLinearSnapHelperでclipToPaddingの値に関係なく、RecyclerView のパディングが考慮されるようになりました(b/139452422、b/139012032、aosp/1103182、aosp/1106715)- ネストされた事前スクロールによって
NestedScrollingParentがスクロールしたときに、RecyclerView がタッチ インターセプトを禁止していなかったバグを修正しました(b/138668210、aosp/1105373)。これは、ViewPager2 などのライブラリで役立ちます。 - ネストされた事前スクロールがディスパッチされる前に、RecyclerView が常に
SCROLL_STATE_DRAGGINGになるようになりました(aosp/1105373) - ジェスチャーがタッチスロップを超えるまでは、ネストされた事前スクロールが実行されなくなりました(b/139530818、aosp/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/131115697、aosp/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-alpha06 と androidx.recyclerview:recyclerview-selection:1.1.0-alpha06 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。
新機能
- smoothScrollBy の新しいオーバーロード
RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration)を追加しました。これにより、アニメーションの所要時間をミリ秒単位で指定できます。(aosp/952807)
API の変更
GridLayoutManagerとStaggeredGridLayoutManagerは、ユーザー補助用のヘッダーとするフルスパン アイテムへの自動ラベル付けを行わなくなりました(aosp/969703)recyclerview-selectionでの選択の順序(作成時間順)を保持します(aosp/937279)
バグの修正
- ネストされたスクロールの状態で、
RecyclerViewが誤った速度でフリングしていたバグを修正しました(aosp/961642) recyclerview-selectionの安定性を改善しました(aosp/960213、aosp/926296)
バージョン 1.1.0-alpha05
2019 年 5 月 7 日
androidx.recyclerview:recyclerview:1.1.0-alpha05 と androidx.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-alpha01 と androidx.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の動作がビューシステムのonInterceptTouchEventとonTouchEventの動作と矛盾するバグを修正しました(aosp/721235)- スムーズなスクロールに関連するエッジケースのバグをいくつか修正しました(aosp/729718、aosp/747168、aosp/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.BuilderのwithGestureTooltypesメソッドと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 については、こちらをご覧ください。
内部状態の防御チェックと管理に関連する安定性を全般的に改善。
バグの修正
- ライブラリ状態の管理と CANCEL イベントの解釈の改善により、安定性が向上しました。
API の変更
- 選択キータイプ パラメータが欠落しているクラスおよびメソッドに、そのパラメータを追加しました。
- サポートが終了したメソッド:
- SelectionTracker.Builder#withPointerTooltype
- SelectionTracker.Builder#withGestureTooltype
- これらのメソッドは、デベロッパーがポインタやジェスチャーの動作をデフォルト以外のツールタイプにマッピングするためのものです*。目的に問題があったわけではなく、使用を重ねるうちに、入力動作に関してユーザーが期待することはツールタイプに依存することが明らかになりました。また、Android 入力システムに関する限り、「パッシブ」タッチペンは FINGER ツールタイプです。
- デフォルトのツールタイプは、ジェスチャーの場合 FINGER、ポインタの場合 MOUSE となります。