RecyclerView 用のカスタムの LayoutManager および ItemDecoration
重要
この記事では、パブリック プレビュー段階であり、一般公開前に大幅に変更される可能性がある機能とガイダンスについて説明します。 本書に記載された情報について、Microsoft は明示または黙示を問わずいかなる保証をするものでもありません。
FoldableLayoutManager
は LinearLayoutManager のラッパーであり、アプリがディスプレイにスパンされているかどうかに応じて 1 つまたはもう一方を提供する GridLayoutManager です。
FoldableItemDecoration
は、アプリがスパンされ、FoldableLayoutManager
が使用されるときにヒンジ (存在する場合) に覆われないように 、2 つの列間に余白を作成する RecyclerView.ItemDecoration の実装です。
シングルスクリーンでは、FoldableLayoutManager
と FoldableItemDecoration
を使用する RecyclerView は通常通り表示されます。
スパン モードでは、FoldableLayoutManager
と FoldableItemDecoration
を使用する RecyclerView により 2 つの画面間でコンテンツが分割されます。
1.0.0-beta4
バージョンから、FoldableLayoutManager
と FoldableItemDecoration
を使用する RecyclerView は、折りたたみ型デバイスでも FoldingFeature 全体にコンテンツを分割して表示します。 例えば、6.7 インチの横方向折りたたみ式エミュレーターではこのように表示されます。
class MainActivity : AppCompatActivity() {
//...
private fun onWindowLayoutInfoChanged(windowLayoutInfo: WindowLayoutInfo) {
recyclerView.layoutManager = FoldableLayoutManager(this, windowLayoutInfo).get()
recyclerView.replaceItemDecorationAt(FoldableItemDecoration(windowLayoutInfo))
}
}
FoldableStaggeredLayoutManager and FoldableStaggeredItemDecoration
また、FoldableStaggeredItemDecoration
とともに使う必要のある FoldableStaggeredLayoutManager
を含めることで、StaggeredGridLayoutManager をデュアルスクリーン モードにする方法もあります。
シングルスクリーンでは、FoldableStaggeredLayoutManager
と FoldableStaggeredItemDecoration
を使用する RecyclerView は通常通り表示されます。
スパン モードでは、FoldableStaggeredLayoutManager
と FoldableStaggeredItemDecoration
を使用する RecyclerView により 2 つの画面間でコンテンツが分割されます。
1.0.0-beta4
バージョンからは、FoldableStaggeredLayoutManager
と FoldableStaggeredItemDecoration
を使用する RecyclerView は、折りたたみ型デバイスでも 2 つの画面間でコンテンツを分割して表示します。 例えば、6.7 インチの横方向折りたたみ式エミュレーターではこのように表示されます。
class MainActivity : AppCompatActivity() {
//...
private fun onWindowLayoutInfoChanged(windowLayoutInfo: WindowLayoutInfo) {
recyclerView.layoutManager = FoldableStaggeredLayoutManager(this, windowLayoutInfo).get()
recyclerView.replaceItemDecorationAt(FoldableStaggeredItemDecoration(windowLayoutInfo))
}
}