Maison  >  Article  >  interface Web  >  Comment empêcher le texte de déborder de l'écran dans React Native ?

Comment empêcher le texte de déborder de l'écran dans React Native ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-01 20:48:02549parcourir

How to Prevent Text Overflowing the Screen in React Native?

Écran de débordement de texte dans React Native : résolution des problèmes d'emballage

Le code présenté présente un élément React Native avec un contenu textuel étendu qui s'étend au-delà du limites de l'écran. L'objectif est de confiner le texte au milieu de l'écran tout en conservant une largeur dynamique de 80%.

Solution :

Pour résoudre ce problème, les modifications suivantes peut être apporté au code :

  • Supprimer la propriété width du style descriptionContainerHor : les tentatives précédentes de manipulation de la largeur à l'aide de flex: 0.3 provoquaient des problèmes sur différentes tailles d'écran. Il est conseillé de le supprimer pour obtenir une largeur dynamique.
  • Ajouter flexShrink: 1 au style descriptionText : Cette propriété CSS permet au texte de se rétrécir si nécessaire, garantissant que il s'adapte à l'espace disponible.
  • Réorganisez le conteneur parent : enveloppez les vues descriptionContainerVer et descriptionContainerVer2 dans une ligne parent flexible. Cela garantit qu'ils s'alignent horizontalement, résolvant ainsi les problèmes d'alignement.

Extrait de code mis à jour :

<code class="javascript">...
var styles = StyleSheet.create({
  container:{
        flex:1,
    flexDirection:'column',
        justifyContent: 'flex-start',
        backgroundColor: 'grey'
    },
    descriptionContainerVer:{
    flex:0.5, //height (according to its parent)
    flexDirection: 'column', //its children will be in a row
    alignItems: 'center',
    backgroundColor: 'blue',
    // alignSelf: 'center',
  },
  descriptionContainerVer2:{
    flex:0.5, //height (according to its parent)
    flexDirection: 'column', //its children will be in a row
    alignItems: 'center',
    backgroundColor: 'orange',
    // alignSelf: 'center',
  },
  descriptionContainerHor:{
    flex: 1,  //no width specified
    flexDirection: 'column',    //its children will be in a column
    alignItems: 'center', //align items according to this parent (like setting self align on each item)
    justifyContent: 'center',
    flexWrap: 'wrap'
  },
  descriptionText: {
    backgroundColor: 'green',//Colors.transparentColor,
    fontSize: 16,
    color: 'white',
    textAlign: 'center',
    flexWrap: 'wrap',
    flexShrink: 1  //allow text to shrink if necessary
  }
});
...

<View style={styles.container}>

        <View style={{flexDirection: 'row'}}>
          <View style={styles.descriptionContainerVer}>
            <View style={styles.descriptionContainerHor}>
              <Text style={styles.descriptionText} numberOfLines={5}>
                Here is a really long text that you can do nothing about, its gonna be long wether you like it or not, so be prepared for it to go off screen. Right? Right..!
              </Text>
            </View>
          </View>

          <View style={styles.descriptionContainerVer2}>
            <View style={styles.descriptionContainerHor}>
              <Text style={styles.descriptionText} numberOfLines={5}>Some other long text which you can still do nothing about.. Off the screen we go then.</Text>
            </View>
          </View>
        </View>

</View>
...</code>

Ces modifications empêcheront efficacement le texte de s'étendre au-delà l'écran et assurez-vous qu'il est confiné dans les limites souhaitées tout en conservant une largeur dynamique.

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:
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