LayoutManager e ItemDecoration personalizados para RecyclerView
Importante
Este artigo descreve funcionalidades e diretrizes que estão em versão prévia pública e podem ser modificadas substancialmente antes de passarem para a disponibilidade geral. A Microsoft não faz nenhuma garantia, expressa ou implícita, com relação às informações fornecidas aqui.
O FoldableLayoutManager
é um wrapper sobre um LinearLayoutManager e um GridLayoutManager que fornecerá um ou outro, de acordo com a extensão ou não do aplicativo.
O FoldableItemDecoration
é uma implementação de um RecyclerView.ItemDecoration que criará uma margem entre as duas colunas para que elas não sejam cobertas pela dobradiça (se presente) quando o aplicativo for estendido e o FoldableLayoutManager
for usado.
Em uma única tela, um RecyclerView que usa o FoldableLayoutManager
e o FoldableItemDecoration
terá uma aparência padrão:
No modo estendido, um RecyclerView que usa o FoldableLayoutManager
e o FoldableItemDecoration
dividirá o conteúdo entre as duas telas:
A partir da versão 1.0.0-beta4
, um RecyclerView que usa o FoldableLayoutManager
e o FoldableItemDecoration
também dividirá o conteúdo no FoldingFeature em dispositivos dobráveis. Por exemplo, está é a aparência no Emulador Horizontal Dobrável de 6,7":
class MainActivity : AppCompatActivity() {
//...
private fun onWindowLayoutInfoChanged(windowLayoutInfo: WindowLayoutInfo) {
recyclerView.layoutManager = FoldableLayoutManager(this, windowLayoutInfo).get()
recyclerView.replaceItemDecorationAt(FoldableItemDecoration(windowLayoutInfo))
}
}
FoldableStaggeredLayoutManager e FoldableStaggeredItemDecoration
Há também uma maneira de colocar o StaggeredGridLayoutManager no modo de tela dupla, incluindo o FoldableStaggeredLayoutManager
que deve ser usado com o FoldableStaggeredItemDecoration
.
Em uma única tela, um RecyclerView que usa o FoldableStaggeredLayoutManager
e o FoldableStaggeredItemDecoration
terá uma aparência padrão:
No modo estendido, um RecyclerView que usa o FoldableStaggeredLayoutManager
e o FoldableStaggeredItemDecoration
dividirá o conteúdo entre as duas telas:
A partir da versão 1.0.0-beta4
, um RecyclerView que usa o FoldableStaggeredLayoutManager
e o FoldableStaggeredItemDecoration
também dividirá o conteúdo entre as duas telas em dispositivos dobráveis. Por exemplo, está é a aparência no Emulador Horizontal Dobrável de 6,7":
class MainActivity : AppCompatActivity() {
//...
private fun onWindowLayoutInfoChanged(windowLayoutInfo: WindowLayoutInfo) {
recyclerView.layoutManager = FoldableStaggeredLayoutManager(this, windowLayoutInfo).get()
recyclerView.replaceItemDecorationAt(FoldableStaggeredItemDecoration(windowLayoutInfo))
}
}