Benutzerdefinierter LayoutManager und ItemDecoration für RecyclerView
Wichtig
In diesem Artikel werden Funktionen und Anleitungen beschrieben, die sich in der öffentlichen Vorschau befinden und vor der allgemeinen Verfügbarkeit noch wesentlich geändert werden können. Microsoft übernimmt keine Garantie, weder ausdrücklich noch stillschweigend, für die hier bereitgestellten Informationen.
Der FoldableLayoutManager
ist ein Wrapper über einem LinearLayoutManager und einem GridLayoutManager, der den einen oder den anderen zur Verfügung stellt, je nachdem, ob die App im bildschirmübergreifenden Modus ausgeführt wird oder nicht.
Der FoldableItemDecoration
ist eine Implementierung einer RecyclerView.ItemDecoration, die einen Steg zwischen den zwei Spalten erstellt, sodass sie nicht vom Scharnier überdeckt werden (falls eins vorhanden ist), wenn die App im bildschirmübergreifenden Modus ausgeführt wird und der FoldableLayoutManager
verwendet wird.
Auf einem Einzelbildschirm sieht eine RecyclerView, die den FoldableLayoutManager
und FoldableItemDecoration
verwendet, wie gewohnt aus:
Im bildschirmübergreifenden Modus teilt eine Recycler-Ansicht, die FoldableLayoutManager
und FoldableItemDecoration
nutzt, den Inhalt auf die beiden Bildschirme auf:
Seit Version 1.0.0-beta4
teilt eine RecyclerView, die FoldableLayoutManager
und FoldableItemDecoration
nutzt, den Inhalt auf faltbaren Geräten auch über das FoldingFeature hinweg. Hier sehen Sie ein Beispiel, wie das auf dem 6,7-Zoll Horizontal Fold-in-Emulator aussieht:
class MainActivity : AppCompatActivity() {
//...
private fun onWindowLayoutInfoChanged(windowLayoutInfo: WindowLayoutInfo) {
recyclerView.layoutManager = FoldableLayoutManager(this, windowLayoutInfo).get()
recyclerView.replaceItemDecorationAt(FoldableItemDecoration(windowLayoutInfo))
}
}
FoldableStaggeredLayoutManager und FoldableStaggeredItemDecoration
Es gibt außerdem eine Möglichkeit, den StaggeredGridLayoutManager im Dual-Screen-Modus zu nutzen, indem der FoldableStaggeredLayoutManager
einbezogen wird, der zusammen mit FoldableStaggeredItemDecoration
verwendet werden sollte.
Auf einem Einzelbildschirm sieht eine RecyclerView, die den FoldableStaggeredLayoutManager
und FoldableStaggeredItemDecoration
verwendet, wie gewohnt aus:
Im bildschirmübergreifenden Modus teilt eine Recycler-Ansicht, die FoldableStaggeredLayoutManager
und FoldableStaggeredItemDecoration
nutzt, den Inhalt auf die beiden Bildschirme auf:
Seit Version 1.0.0-beta4
teilt eine RecyclerView, die FoldableStaggeredLayoutManager
und FoldableStaggeredItemDecoration
nutzt, den Inhalt auf faltbaren Geräten ebenfalls auf die zwei Bildschirme auf. Hier sehen Sie ein Beispiel, wie das auf dem 6,7-Zoll Horizontal Fold-in-Emulator aussieht:
class MainActivity : AppCompatActivity() {
//...
private fun onWindowLayoutInfoChanged(windowLayoutInfo: WindowLayoutInfo) {
recyclerView.layoutManager = FoldableStaggeredLayoutManager(this, windowLayoutInfo).get()
recyclerView.replaceItemDecorationAt(FoldableStaggeredItemDecoration(windowLayoutInfo))
}
}