Recyclerview
androidx.recyclerview
グループ内のすべてのアーティファクトのリストを以下に示します。
アーティファクト | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
---|---|---|---|---|
recyclerview | 1.3.2 | - | 1.4.0-beta01 | - |
recyclerview-selection | 1.1.0 | - | - | 1.2.0-alpha01 |
依存関係の宣言
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 のサポートが終了しました(I51710、b/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 以降に更新することが推奨されます。詳しくは、こちらの記事をご覧ください。(Ia60e0、b/345472586)。
- トレース セクションを
RecyclerView
のバインド/作成セクションにアイテム ビュータイプを追加し、RV プリフェッチに「強制 - 次のフレームが必要」というラベルを付ける(次のフレームでの使用が予想される場合)。したがって、可能な限り早く処理を開始する必要があります。(I8ec3e、b/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
の呼び出し時に一時的にデタッチされたビューを一時的に再度アタッチすることで、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
とDisposeOnViewTreeLifecycleDestroyed
ViewCompositionStrategy
を使用していた場合、デフォルトの状態から改善されなくなったため、これらを削除する必要があります。 - 新しい
ConcatAdapter.getWrappedAdapterAndPosition
メソッドが追加され、SpanSizeLookup
などの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
とDisposeOnViewTreeLifecycleDestroyed
ViewCompositionStrategy
を使用していた場合は、デフォルトの状態を上回る改善が行われなくなるため、それらを削除する必要があります。
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-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 となります。