149 votes

Dessiner une règle horizontale en React Native

J'ai essayé react-native-hr paquet - ne fonctionne pas pour moi ni sur Android ni sur iOS.

Le code suivant ne convient pas non plus car il rend trois points à la fin.

<Text numberOfLines={1}}>               
    ______________________________________________________________
</Text>

0 votes

<Text>__________ Niveau {niveau} __________</Text>

407voto

Antoine Grandchamp Points 2638

Vous pourriez simplement utiliser une vue vide avec une bordure inférieure.

<View
  style={{
    borderBottomColor: 'black',
    borderBottomWidth: 1,
  }}
/>

66 votes

Je recommande borderBottomWidth: StyleSheet.hairlineWidth :)

25 votes

Si cela ne fonctionne pas, pensez à ajouter alignSelf : 'stretch'.

1 votes

Vous devez spécifier la valeur WIDTH pour la vue.

26voto

Smit Points 174

On peut utiliser la marge pour modifier la largeur d'une ligne et la placer au centre.

import { StyleSheet } from 'react-native;
<View style = {styles.lineStyle} />

const styles = StyleSheet.create({
  lineStyle:{
        borderWidth: 0.5,
        borderColor:'black',
        margin:10,
   }
 });

si vous voulez donner une marge de façon dynamique, vous pouvez utiliser Dimension width.

0 votes

Merci. Vous pouvez également <View style = {styles.lineStyle} /> puisque rien ne se situe entre les deux ;-)

0 votes

Smit styles.lineStyle correspondrait à un const styles = StyleSheet.create({ lineStyle: ... }); ici. Vous avez juste lineStyle = { ...} ce qui causerait un problème. Une solution complète avec styles.lineStyle pourrait être const styles = StyleSheet.create({ lineStyle: { borderWidth: 0.5, borderColor: 'black', margin: 10 } }); .

0 votes

Oui, tu as raison. Ici, je suppose que tu as mis lineStyle dans votre feuille de style.

14voto

Martin Chinome Points 308

J'ai récemment eu ce problème.

<Text style={styles.textRegister}>   Register With  </Text>

avec ce résultat :

Image

28 votes

Cela ne s'adapte pas bien

0 votes

Aussi simple que cela.

0 votes

@PetrusTheron pourquoi n'est-il pas bien adapté ?

10voto

sarin upreti Points 66

Je l'ai fait comme ceci. J'espère que cela vous aidera

<View style={styles.hairline} />
<Text style={styles.loginButtonBelowText1}>OR</Text>
<View style={styles.hairline} />

pour le style :

hairline: {
  backgroundColor: '#A2A2A2',
  height: 2,
  width: 165
},

loginButtonBelowText1: {
  fontFamily: 'AvenirNext-Bold',
  fontSize: 14,
  paddingHorizontal: 5,
  alignSelf: 'center',
  color: '#A2A2A2'
},

0 votes

Je pense que c'est la meilleure solution. C'est mieux que d'utiliser la frontière comme les autres réponses.

0 votes

Le codage en dur de la largeur pourrait être un peu problématique.

7voto

user2513722 Points 111

Vous pouvez également essayer react-native-hr-component

npm i react-native-hr-component --save

Votre code :

import Hr from 'react-native-hr-component'

//..

<Hr text="Some Text" fontSize={5} lineColor="#eee" textPadding={5} textStyles={yourCustomStyles} hrStyles={yourCustomHRStyles} />

7 votes

C'est un peu exagéré.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X