Maison > interface Web > js tutoriel > Implémentation de la fonctionnalité de pression longue à l'aide du gestionnaire de gestes React Native dans l'application React Native

Implémentation de la fonctionnalité de pression longue à l'aide du gestionnaire de gestes React Native dans l'application React Native

Susan Sarandon
Libérer: 2024-10-07 16:20:29
original
1175 Les gens l'ont consulté

Implementing Long Press Functionality Using React Native Gesture Handler in React Native Application

Vous pouvez implémenter une fonctionnalité d'appui long à l'aide de bibliothèques telles que React Native Gesture Handler pour détecter le geste d'appui long. Cette bibliothèque offre des capacités de gestion des gestes plus avancées et plus fiables par rapport à l'événement React Native onLongPress standard.

Voici comment implémenter la fonctionnalité d'appui long pour afficher la version du microfrontend et d'autres informations sur l'application :

Étape 1 : Installer le gestionnaire de gestes natif React

Tout d'abord, si vous n'avez pas déjà installé le package react-native-gesture-handler, installez-le :


npm install react-native-gesture-handler


Copier après la connexion

Assurez-vous de le lier à votre projet si vous utilisez React Native CLI :


<p>npx react-native link react-native-gesture-handler</p>

Copier après la connexion




Étape 2 : configurer le gestionnaire de gestes

Après l'installation, enveloppez votre application avec GestureHandlerRootView dans votre point d'entrée (généralement index.js ou App.js).


<p>import { GestureHandlerRootView } from 'react-native-gesture-handler';<br>
import { App } from './App';</p>

<p>export default function Main() {<br>
  return (<br>
    <GestureHandlerRootView style={{ flex: 1 }}><br>
      <App /><br>
    </GestureHandlerRootView><br>
  );<br>
}</p>

Copier après la connexion




Étape 3 : implémentez un appui long dans votre en-tête personnalisé

Maintenant, dans votre en-tête personnalisé, utilisez LongPressGestureHandler pour détecter l'événement d'appui long. Vous pouvez ensuite afficher une vue modale ou personnalisée affichant la version du microfrontend et d'autres informations sur l'application.

Voici un exemple de la façon dont vous pourriez mettre en œuvre cela :


<p>import React, { useState } from 'react';<br>
import { Text, View, Modal, StyleSheet } from 'react-native';<br>
import { LongPressGestureHandler, State } from 'react-native-gesture-handler';</p>

<p>const CustomHeader = ({ microfrontendVersion, appInfo }) => {<br>
  const [isModalVisible, setModalVisible] = useState(false);</p>

<p>const onLongPress = (event) => {<br>
    if (event.nativeEvent.state === State.ACTIVE) {<br>
      // Show the modal with app info when long press is detected<br>
      setModalVisible(true);<br>
    }<br>
  };</p>

<p>return (<br>
    <View><br>
      {/* LongPressGestureHandler wraps the part of the UI where long press is to be detected <em>/</em>}<br>
      <LongPressGestureHandler onHandlerStateChange={onLongPress} minDurationMs={800}><br>
        <View style={styles.header}><br>
          <Text style={styles.headerTitle}>My Custom Header</Text><br>
        </View><br>
      </LongPressGestureHandler><br>
<br>
      {/ Modal to show the version and app info */}<br>
      <Modal<br>
        transparent={true}<br>
        visible={isModalVisible}<br>
        onRequestClose={() => setModalVisible(false)}<br>
      ><br>
        <View style={styles.modalContainer}><br>
          <View style={styles.modalContent}><br>
            <Text>Microfrontend Version: {microfrontendVersion}</Text><br>
            <Text>App Info: {appInfo}</Text><br>
            <Text onPress={() => setModalVisible(false)} style={styles.closeButton}>Close</Text><br>
          </View><br>
        </View><br>
      </Modal><br>
    </View><br>
  );<br>
};</p>

<p>const styles = StyleSheet.create({<br>
  header: {<br>
    padding: 16,<br>
    backgroundColor: '#6200EE',<br>
  },<br>
  headerTitle: {<br>
    color: 'white',<br>
    fontSize: 18,<br>
    fontWeight: 'bold',<br>
  },<br>
  modalContainer: {<br>
    flex: 1,<br>
    justifyContent: 'center',<br>
    alignItems: 'center',<br>
    backgroundColor: 'rgba(0, 0, 0, 0.5)',<br>
  },<br>
  modalContent: {<br>
    backgroundColor: 'white',<br>
    padding: 20,<br>
    borderRadius: 10,<br>
  },<br>
  closeButton: {<br>
    marginTop: 10,<br>
    color: 'blue',<br>
    textAlign: 'center',<br>
  },<br>
});</p>

<p>export default CustomHeader;</p>

Copier après la connexion




Explication :

  1. LongPressGestureHandler : enveloppez l'en-tête ou tout composant où vous souhaitez détecter un appui long.

    • minDurationMs={800} : ceci définit la durée pendant laquelle l'utilisateur doit appuyer pour déclencher l'événement d'appui long.
    • onHandlerStateChange : Cette méthode est déclenchée lorsque l'état du geste change.
    • Dans onLongPress, nous vérifions si le geste est à l'état ACTIF pour déterminer si l'appui long a réussi, puis déclenchons le modal pour afficher l'information.
  2. Modal : Ceci est utilisé pour afficher la version du microfrontend et d'autres informations sur l'application lorsque l'événement d'appui long est déclenché.

Cette méthode détecte efficacement les appuis longs et affiche les informations requises sur le microfrontend et les détails de l'application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal