Maison interface Web js tutoriel Quelles sont les précautions d'utilisation de React Navigation ?

Quelles sont les précautions d'utilisation de React Navigation ?

May 22, 2018 pm 02:59 PM
navigation react 注意事项

Cette fois, je vais vous apporter quelles sont les précautions pour utiliser React Navigation et quelles sont les précautions pour utiliser React Navigation Ce qui suit est un cas pratique, jetons un coup d'œil.

Lors du développement de React Native, j'ai rencontré de nombreux problèmes lors de l'utilisation du framework de navigation React. Principalement en raison de l'incompatibilité relative entre Android et iOS, enregistrez par la présente

1. Barre de navigation

Lorsque vous utilisez la barre de navigation, vous rencontrez ce qui suit problèmes Problème

1. Il y a une ligne noire en bas de la barre de navigation

L'intention initiale est de créer une page où la couleur de la barre est cohérente. avec la couleur de la page. Seulement s'il y a deux autres boutons en haut. J'ai trouvé une ligne noire au bas de la barre. Par conséquent, la barre ne peut pas bien correspondre à l’effet de page souhaité. Après avoir défini le code dans l'en-tête, vous pouvez supprimer

static navigationOptions = {
 ...
 headerStyle: {
    ...
    borderBottomWidth: 0,
  },
 }
Copier après la connexion

2. Il y a une ombre au bas de la barre de Android et l'image d'arrière-plan de la barre personnalisée. impossible de remplir

La barre de navigation React a une hauteur par défaut dans Android. L'effet visuel est qu'il y aura une ombre en bas. Et un autre effet gênant survient lorsqu'une barre personnalisée avec une image d'arrière-plan est utilisée. Vous constaterez que l’image d’arrière-plan a l’effet d’une couverture incomplète. Il y a toujours un écart sur les côtés. Ce problème ne se produit pas sous iOS. Ce problème peut être résolu en définissant l'attribut d'élévation à zéro

 static navigationOptions = {
 ...
 headerStyle: {
    ...
    elevation: 0,
  },
 }
Copier après la connexion

3. Le problème du centrage du titre de la barre dans Android

Sous Android, le titre de la barre est centrée à gauche. iOS est centré par défaut. Vous pouvez utiliser la méthode d'écriture suivante pour centrer

static navigationOptions = {
 ...
 headerTitleStyle: {
    //此属性是标题的Style属性。可以接受<Text>标签的style
    ...
    alignSelf: "center",
  },
 }
Copier après la connexion

lorsqu'il n'y a pas de boutons sur le côté gauche. Il suffit d'écrire ainsi. Mais s'il y a une touche retour ou d'autres touches personnalisées sur le côté gauche. Le titre sera décalé sous Android. La solution est d'ajouter un bouton vide à droite

static navigationOptions = {
 ...
 headerRight: <View />
 }
Copier après la connexion

4. La barre de navigation avec image de fond

est différente de Yuansheng. Il n'y a pas d'attribut d'image d'arrière-plan dans la barre de navigation de réaction. Autrement dit, lorsque l’on souhaite utiliser la barre de navigation avec une image de fond, il faut utiliser une vue personnalisée.

import {Header} from "react-navigation";
//header 需导入
const ImageHeader = props => (
  <View>
    <Image
      style={{position: "absolute", zIndex: -1, width: "100%", height: "100%", resizeMode: "cover"}}
      source={require(...)}
    />
    <Header {...props} style={{backgroundColor: "transparent"}} />
  </View>
);
static navigationOptions = {
 ...
 headerStyle: {
   //背景颜色必须为透明,不然无法透出底部图片
   backgroundColor: "transparent",
   //安卓中不添加此属性会导致背景图无法铺满
   elevation: 0,
 },
  header: props => {
    return <ImageHeader {...props} />;
  },
 }
Copier après la connexion

5. Problème de conflit de gestes lorsque StackNavigator et DrawerNavigator sont imbriqués

Lorsque DrawerNavigator est imbriqué dans StackNavigator. Après être entré dans l'interface secondaire de StackNav, le geste de retour entre en conflit avec l'ouverture du menu DrawerNav.

static navigationOptions = {
 ...
 //禁止打开菜单
 drawerLockMode: "locked-closed", 
 //允许使用返回手势
 gesturesEnabled: true,
 }
Copier après la connexion

Ce paramètre peut être modifié en fonction de vos besoins

5. Problème d'incohérence de la hauteur de la barre de navigation

Lors de l'utilisation d'une barre personnalisée. Android et iOS sont très incohérents. Android calcule la hauteur de navigation à partir du haut du téléphone. Par défaut, iOS décalera la hauteur de la barre d'état vers le bas. Pour obtenir un effet uniforme. Vous devez définir la propriété paddingTop de la barre Android sur la hauteur de la barre d'état

import {StatusBar, Platform} from "react-native";
navigationOptions = {
 ...
 headerStyle: {
   ...
   paddingTop: Platform.OS === "ios" ? 0 : StatusBar.currentHeight,
  },
 }
Copier après la connexion

6. Barre de navigation à l'aide de boutons personnalisés

Utilisez headerRight ou headerLeft pour personnaliser. le bouton Ou Afficher

static navigationOptions = {
 ...
 headerRight = (<TouchableOpacity style={{marginRight: 10}} onPress={...}>
        <Text style={styles.NavSureButton}>btn</Text>
      </TouchableOpacity>)
 }
Copier après la connexion

Mais si la méthode onPress utilise this.props, this.state ou d'autres méthodes dans la classe, des problèmes surgiront

Dans la classe de chaque page, nous utilisez static navigationOptions={...} pour configurer certaines configurations de navigation. Mais parce que les propriétés modifiées par static appartiennent aux propriétés statiques de la classe. La méthode de propriété de ceci ne peut pas être appelée. Nous devons donc utiliser la méthode this.props.navigation.setParams({key:value ...}) pour définir l'événement de clic du bouton d'en-tête.

class Demo extends React,Component{
 componentWillMount() {
  //绑定方法
  this.props.navigation.setParams({rightOnPress: this.rightBtnOnPress});
 }
 //点击方法
 rightBtnOnPress = ()=>{
  ...
 }
  static navigationOptions = ({navigation}) => {
    const params = navigation.state.params || {};
    let navigationOptions = {
    ...
    headerRight = (<TouchableOpacity style={{marginRight: 10}} onPress={params.rightOnPress}>
        <Text style={styles.NavSureButton}>btn</Text>
      </TouchableOpacity>)
    }
    return navigationOptions;
  };
  ...
}
Copier après la connexion

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Analyse des étapes de publication des composants de vue sur npm

Explication détaillée de l'utilisation de Vue composant multi-niveaux fournir/injecter

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Wuthering WavesIntroduction aux points nécessitant une attention particulière lors des tests Wuthering WavesIntroduction aux points nécessitant une attention particulière lors des tests Mar 13, 2024 pm 08:13 PM

Pendant le test Mingchao, veuillez éviter les mises à niveau du système, les réinitialisations d'usine et le remplacement de pièces pour éviter que la perte d'informations ne provoque une connexion anormale au jeu. Rappel spécial : il n'y a pas de voie d'appel pendant la période de test, veuillez donc la manipuler avec prudence. Introduction aux précautions lors du test Mingchao : Ne pas mettre à niveau le système, restaurer les paramètres d'usine, remplacer les composants de l'équipement, etc. Notes : 1. Veuillez mettre à niveau le système avec soin pendant la période de test pour éviter la perte d'informations. 2. Si le système est mis à jour, cela peut entraîner un problème d'impossibilité de se connecter au jeu. 3. À ce stade, le canal d'appel n'a pas encore été ouvert. Il est conseillé aux joueurs de choisir s'ils souhaitent effectuer une mise à niveau, à leur propre discrétion. 4. Dans le même temps, un compte de jeu ne peut être utilisé qu’avec un seul appareil Android et un seul PC. 5. Il est recommandé d'attendre la fin du test avant de mettre à niveau le système de téléphonie mobile, de restaurer les paramètres d'usine ou de remplacer l'appareil.

Mar 22, 2024 pm 04:10 PM

Avec l'essor des plateformes de vidéos courtes, Douyin est devenu une partie intégrante de la vie quotidienne de nombreuses personnes. Diffuser en direct sur Douyin et interagir avec les fans sont le rêve de nombreux utilisateurs. Alors, comment démarrer une diffusion en direct sur Douyin pour la première fois ? 1. Comment démarrer une diffusion en direct sur Douyin pour la première fois ? 1. Préparation Pour démarrer la diffusion en direct, vous devez d'abord vous assurer que votre compte Douyin a terminé l'authentification par votre nom réel. Vous pouvez trouver le didacticiel d'authentification par nom réel dans « Moi » -> « Paramètres » -> « Compte et sécurité » dans l'application Douyin. Après avoir terminé l'authentification par nom réel, vous pouvez remplir les conditions de diffusion en direct et démarrer la diffusion en direct sur la plateforme Douyin. 2. Demandez une autorisation de diffusion en direct. Après avoir rempli les conditions de diffusion en direct, vous devez demander une autorisation de diffusion en direct. Ouvrez l'application Douyin, cliquez sur "Moi" -> "Creator Center" -> "Direct

Étapes et précautions pour installer pip sans réseau Étapes et précautions pour installer pip sans réseau Jan 18, 2024 am 10:02 AM

Méthodes et précautions pour installer pip dans un environnement hors ligne L'installation de pip devient un défi dans un environnement hors ligne où le réseau n'est pas fluide. Dans cet article, nous présenterons plusieurs méthodes d'installation de pip dans un environnement hors ligne et fournirons des exemples de code spécifiques. Méthode 1 : utilisez le package d'installation hors ligne. Dans un environnement où vous pouvez vous connecter à Internet, utilisez la commande suivante pour télécharger le package d'installation pip à partir de la source officielle : pipdownloadpip Cette commande téléchargera automatiquement pip et ses packages dépendants à partir de la source officielle. source et enregistrez-le dans le répertoire courant. Déplacez le package compressé téléchargé vers un emplacement distant

PHP, Vue et React : Comment choisir le framework front-end le plus adapté ? PHP, Vue et React : Comment choisir le framework front-end le plus adapté ? Mar 15, 2024 pm 05:48 PM

PHP, Vue et React : Comment choisir le framework front-end le plus adapté ? Avec le développement continu de la technologie Internet, les frameworks front-end jouent un rôle essentiel dans le développement Web. PHP, Vue et React sont trois frameworks front-end représentatifs, chacun avec ses propres caractéristiques et avantages. Lorsqu'ils choisissent le framework front-end à utiliser, les développeurs doivent prendre une décision éclairée en fonction des besoins du projet, des compétences de l'équipe et des préférences personnelles. Cet article comparera les caractéristiques et les usages des trois frameworks front-end PHP, Vue et React.

Étapes et précautions d'utilisation du stockage local pour stocker des données Étapes et précautions d'utilisation du stockage local pour stocker des données Jan 11, 2024 pm 04:51 PM

Étapes et précautions d'utilisation de localStorage pour stocker des données Cet article présente principalement comment utiliser localStorage pour stocker des données et fournit des exemples de code pertinents. LocalStorage est un moyen de stocker des données dans le navigateur qui conserve les données locales sur l'ordinateur de l'utilisateur sans passer par un serveur. Voici les étapes et les éléments à prendre en compte lors de l'utilisation de localStorage pour stocker des données. Étape 1 : Vérifiez si le navigateur prend en charge LocalStorage

Intégration du framework Java et du framework front-end React Intégration du framework Java et du framework front-end React Jun 01, 2024 pm 03:16 PM

Intégration du framework Java et du framework React : Étapes : Configurer le framework Java back-end. Créer une structure de projet. Configurez les outils de construction. Créez des applications React. Écrivez les points de terminaison de l'API REST. Configurez le mécanisme de communication. Cas pratique (SpringBoot+React) : Code Java : Définir le contrôleur RESTfulAPI. Code React : obtenez et affichez les données renvoyées par l'API.

Étapes et points pour installer et utiliser correctement pip dans un environnement Linux Étapes et points pour installer et utiliser correctement pip dans un environnement Linux Jan 17, 2024 am 09:31 AM

Les étapes d'installation et les précautions de pip dans l'environnement Linux Titre : Les étapes d'installation et les précautions de pip dans l'environnement Linux Lors du développement de Python, nous avons souvent besoin d'utiliser des bibliothèques tierces pour augmenter les fonctionnalités du programme. En tant qu'outil de gestion de packages standard pour Python, pip peut facilement installer, mettre à niveau et gérer ces bibliothèques tierces. Cet article présentera les étapes à suivre pour installer pip dans un environnement Linux et fournira quelques précautions et des exemples de code spécifiques pour référence. 1. Installez pip pour vérifier la version Python

Foire aux questions et remarques : Utilisation de MyBatis pour les requêtes par lots Foire aux questions et remarques : Utilisation de MyBatis pour les requêtes par lots Feb 19, 2024 pm 12:30 PM

Notes et FAQ sur les instructions de requête par lots MyBatis Introduction MyBatis est un excellent framework de couche de persistance qui prend en charge des opérations de base de données flexibles et efficaces. Parmi eux, les requêtes par lots sont une exigence courante. En interrogeant plusieurs éléments de données en même temps, la surcharge de connexion à la base de données et d'exécution SQL peut être réduite et les performances du système peuvent être améliorées. Cet article présentera quelques précautions et problèmes courants liés aux instructions de requête par lots MyBatis, et fournira des exemples de code spécifiques. J'espère que cela pourra aider les développeurs. Choses à noter lors de l'utilisation de M

See all articles