Secciones plegables y acordeones en React Native

Guía de plegables y acordeones en React Native

Plegables y acordeones en React Native, sin bibliotecas | We.Inc

Pliega y despliega secciones en React Native con LayoutAnimation, gira el chevron con Animated e informa de accessibilityState expanded. Vista previa del acordeón en vivo.

Para plegar una sección en React Native, guarda un indicador open en el estado y renderiza el cuerpo solo mientras sea true. Invoca LayoutAnimation.configureNext antes de cambiar el indicador y las vistas de alrededor se deslizarán a sus nuevas posiciones. Da al Pressable de la cabecera accessibilityRole="button" y accessibilityState={{ expanded }} para que los lectores de pantalla anuncien si está abierta.

Dos formas de animar un plegable

El acordeón de abajo es el gemelo web del código React Native de esta página: la misma forma de estado y el mismo indicador expanded en cada cabecera. Alterna entre permitir que varias secciones sigan abiertas y permitir solo una, y luego copia la versión que encaje con tu pantalla.

Preguntas frecuentes

¿Cómo animo una vista plegable en React Native?

Invoca LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut) justo antes del cambio de estado que muestra u oculta el cuerpo. El preset easeInEaseOut dura 300 milisegundos.

¿Por qué LayoutAnimation no hace nada en Android?

La página de LayoutAnimation indica que Android necesita UIManager.setLayoutAnimationEnabledExperimental(true), invocado solo si esa función existe. Ejecútalo una vez al arrancar la app, antes del primer cambio animado.

¿Puedo animar la altura con Animated y el native driver?

No. La documentación de React Native limita el native driver a propiedades que no son de layout, como transform y opacity, así que valores de layout como height quedan fuera. Anima la altura sin el native driver, o usa LayoutAnimation.

¿Cómo saben los lectores de pantalla que una sección está abierta?

Define accessibilityState={{ expanded: isOpen }} en la cabecera, o la prop aria-expanded. La documentación describe expanded como si un elemento desplegable está actualmente desplegado o plegado.

Acordeón o secciones independientes

Mantenerlo fluido

Código del plegable

Sección plegable con LayoutAnimation y un chevron que gira

El cuerpo solo se monta mientras está abierto. El chevron gira con el native driver porque la rotación es un transform.

Acordeón: una sección abierta cada vez

Un único id en el estado. Pulsar de nuevo la sección abierta lo pone en null y la cierra.

¿Cuándo se enviará mi pedido?

Los pedidos realizados antes del mediodía salen el mismo día. Recibes un enlace de seguimiento por correo en cuanto se escanea el paquete.

¿Puedo devolver un artículo?

Los artículos sin usar se pueden devolver en un plazo de 30 días. Inicia la devolución desde la pantalla del pedido e imprime la etiqueta.

¿Cómo cambio mi dirección?

Abre Cuenta y luego Direcciones. Los cambios se aplican a los pedidos que aún no se han enviado.

Vista previa del acordeón

Preguntas de ayuda de ejemplo de una tienda inventada, para mostrar el comportamiento.

Solo una abierta

Varias abiertas

Comportamiento al abrir

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio