Sections repliables et accordéons en React Native

Guide des sections repliables et accordéons React Native

Section repliable et accordéon React Native, sans librairie | We.Inc

Repliez et dépliez des sections en React Native avec LayoutAnimation, faites tourner le chevron avec Animated et exposez accessibilityState expanded. Aperçu d'accordéon en direct.

Pour replier une section en React Native, gardez un indicateur d'ouverture dans le state et n'affichez le contenu que lorsqu'il vaut true. Appelez LayoutAnimation.configureNext avant de modifier l'indicateur et les vues voisines glissent vers leur nouvelle position. Donnez au Pressable de l'en-tête accessibilityRole="button" et accessibilityState={{ expanded }} pour que les lecteurs d'écran annoncent s'il est ouvert.

Deux façons d'animer une section repliable

L'accordéon ci-dessous est le jumeau web du code React Native de cette page : même forme de state, même indicateur expanded sur chaque en-tête. Basculez entre plusieurs sections ouvertes à la fois et une seule autorisée, puis copiez la version adaptée à votre écran.

Questions fréquentes

Comment animer une vue repliable en React Native ?

Appelez LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut) juste avant le changement de state qui affiche ou masque le contenu. Le preset easeInEaseOut dure 300 millisecondes.

Pourquoi LayoutAnimation ne fait-il rien sur Android ?

La page LayoutAnimation indique qu'Android a besoin de UIManager.setLayoutAnimationEnabledExperimental(true), appelée seulement si cette fonction existe. Exécutez-la une fois au démarrage de l'app, avant le premier changement animé.

Puis-je animer la hauteur avec Animated et le native driver ?

Non. La documentation React Native limite le native driver aux propriétés hors mise en page comme transform et opacity, donc les valeurs de mise en page comme height sont exclues. Animez la hauteur sans le native driver, ou utilisez plutôt LayoutAnimation.

Comment les lecteurs d'écran savent-ils qu'une section est ouverte ?

Définissez accessibilityState={{ expanded: isOpen }} sur l'en-tête, ou la prop aria-expanded. La documentation décrit expanded comme l'indication qu'un élément dépliable est actuellement déplié ou replié.

Accordéon ou sections indépendantes

Garder une animation fluide

Code de section repliable

Section repliable avec LayoutAnimation et un chevron qui tourne

Le contenu n'est monté que lorsqu'il est ouvert. Le chevron tourne avec le native driver, car la rotation est un transform.

Accordéon : une seule section ouverte à la fois

Un seul id dans le state. Appuyer à nouveau sur la section ouverte le remet à null et la ferme.

Quand ma commande sera-t-elle expédiée ?

Les commandes passées avant midi partent le jour même. Vous recevez un lien de suivi par e-mail dès que le colis est scanné.

Puis-je retourner un article ?

Les articles non utilisés peuvent être retournés sous 30 jours. Lancez le retour depuis l'écran de la commande et imprimez l'étiquette.

Comment modifier mon adresse ?

Ouvrez Compte, puis Adresses. Les modifications s'appliquent aux commandes qui ne sont pas encore expédiées.

Aperçu de l'accordéon

Questions d'aide fictives d'une boutique inventée, pour montrer le comportement.

Une seule ouverte

Plusieurs ouvertes

Comportement d'ouverture

Commencer gratuitement · Sans carte bancaire

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site