Elementos LayoutManager e ItemDecoration personalizados para RecyclerView
Importante
En este artículo se describen la funcionalidad y las instrucciones que se encuentran en versión preliminar pública, por lo que pueden modificarse de forma sustancial antes de que estén disponibles con carácter general. Microsoft no ofrece ninguna garantía, expresa o implícita, con respecto a la información que se ofrece aquí.
FoldableLayoutManager
es un contenedor sobre un elemento LinearLayoutManager y un elemento GridLayoutManager, que proporcionará uno u otro elemento en función de si la aplicación está distribuida entre pantallas.
FoldableItemDecoration
es una implementación de un elemento RecyclerView.ItemDecoration que creará un margen entre las dos columnas para que la bisagra (si es que está presente) no las cubra cuando la aplicación se distribuya y se use FoldableLayoutManager
.
En una sola pantalla, un elemento RecyclerView que usa FoldableLayoutManager
y FoldableItemDecoration
tendrá su aspecto habitual:
En el modo distribuido, un elemento RecyclerView que usa FoldableLayoutManager
y FoldableItemDecoration
dividirá el contenido entre las dos pantallas:
A partir de la versión 1.0.0-beta4
, un elemento RecyclerView que usa FoldableLayoutManager
y FoldableItemDecoration
también dividirá el contenido de FoldingFeature en dispositivos plegables. Por ejemplo, este es el aspecto del emulador de plegado horizontal de 6,7 pulgadas:
class MainActivity : AppCompatActivity() {
//...
private fun onWindowLayoutInfoChanged(windowLayoutInfo: WindowLayoutInfo) {
recyclerView.layoutManager = FoldableLayoutManager(this, windowLayoutInfo).get()
recyclerView.replaceItemDecorationAt(FoldableItemDecoration(windowLayoutInfo))
}
}
FoldableStaggeredLayoutManager y FoldableStaggeredItemDecoration
También hay una manera de tener el elemento StaggeredGridLayoutManager en modo de pantalla doble, al incluir el elemento FoldableStaggeredLayoutManager
que debe usarse junto con FoldableStaggeredItemDecoration
.
En una sola pantalla, un elemento RecyclerView que usa FoldableStaggeredLayoutManager
y FoldableStaggeredItemDecoration
tendrá su aspecto habitual:
En el modo distribuido, un elemento RecyclerView que usa FoldableStaggeredLayoutManager
y FoldableStaggeredItemDecoration
dividirá el contenido entre las dos pantallas:
A partir de la versión 1.0.0-beta4
, un elemento RecyclerView que usa FoldableStaggeredLayoutManager
y FoldableStaggeredItemDecoration
también dividirá el contenido entre las dos pantallas en los dispositivos plegables. Por ejemplo, este es el aspecto del emulador de plegado horizontal de 6,7 pulgadas:
class MainActivity : AppCompatActivity() {
//...
private fun onWindowLayoutInfoChanged(windowLayoutInfo: WindowLayoutInfo) {
recyclerView.layoutManager = FoldableStaggeredLayoutManager(this, windowLayoutInfo).get()
recyclerView.replaceItemDecorationAt(FoldableStaggeredItemDecoration(windowLayoutInfo))
}
}