Seções recolhíveis e accordions no React Native

Guia de collapsible e accordion no React Native

Collapsible e accordion no React Native, sem biblioteca | We.Inc

Recolha e expanda seções no React Native com LayoutAnimation, gire a seta com Animated e informe accessibilityState expanded. Com prévia de accordion ao vivo.

Para recolher uma seção no React Native, mantenha um indicador open no estado e renderize o conteúdo só enquanto ele for verdadeiro. Chame LayoutAnimation.configureNext antes de mudar o indicador e as views ao redor deslizam para as novas posições. Dê ao Pressable do cabeçalho accessibilityRole="button" e accessibilityState={{ expanded }} para que os leitores de tela anunciem se ele está aberto.

Duas formas de animar um collapsible

O accordion abaixo é o gêmeo web do código React Native desta página: o mesmo formato de estado, o mesmo indicador expanded em cada cabeçalho. Alterne entre deixar várias seções abertas e permitir só uma, e copie a versão que combina com a sua tela.

Perguntas frequentes

Como animo uma view recolhível no React Native?

Chame LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut) logo antes da mudança de estado que mostra ou esconde o conteúdo. O preset easeInEaseOut dura 300 milissegundos.

Por que o LayoutAnimation não faz nada no Android?

A página do LayoutAnimation diz que o Android precisa de UIManager.setLayoutAnimationEnabledExperimental(true), chamado só se essa função existir. Rode-o uma vez quando o app iniciar, antes da primeira mudança animada.

Posso animar a altura com Animated e o native driver?

Não. A documentação do React Native limita o native driver a propriedades que não são de layout, como transform e opacity, então valores de layout como height ficam de fora. Anime a altura sem o native driver ou use o LayoutAnimation.

Como os leitores de tela sabem que uma seção está aberta?

Defina accessibilityState={{ expanded: isOpen }} no cabeçalho, ou a prop aria-expanded. A documentação descreve expanded como a indicação de se um elemento expansível está expandido ou recolhido no momento.

Accordion ou seções independentes

Mantendo tudo fluido

Código do collapsible

Seção recolhível com LayoutAnimation e uma seta que gira

O conteúdo só é montado enquanto está aberto. A seta gira com o native driver porque a rotação é um transform.

Accordion: uma seção aberta por vez

Um único id no estado. Tocar de novo na seção aberta o define como null e a fecha.

Quando o meu pedido será enviado?

Pedidos feitos antes do meio-dia saem no mesmo dia. Você recebe um link de rastreio por e-mail assim que o pacote é escaneado.

Posso devolver um item?

Itens sem uso podem ser devolvidos em até 30 dias. Inicie a devolução na tela do pedido e imprima a etiqueta.

Como mudo o meu endereço?

Abra Conta e depois Endereços. As alterações valem para pedidos que ainda não foram enviados.

Prévia do accordion

Perguntas de ajuda de exemplo de uma loja fictícia, para mostrar o comportamento.

Só uma aberta

Várias abertas

Comportamento de abertura

Comece grátis · Sem cartão de crédito

Relacionados: Guias

Produto

Para quem é

Recursos

Recursos

Empresa

Mapa do site