0
votes

React native - couleur d'arrière-plan ne couvrant que la moitié de l'écran, comment y remédier?

Je suis nouveau dans React Native. J'ai récemment converti tous mes composants fonctionnels en composants de classe et relancé mon code - mais maintenant la couleur d'arrière-plan ne couvre que la moitié de l'écran. flex: 1 dans le styles.container et j'ai essayé de définir la hauteur et la largeur du conteneur à 100% au cas où cela provoquait l'erreur. Mais il s'avère que cela reste le même. Comment puis-je réparer ça? La couleur d'arrière-plan ne couvre que la moitié de l'écran!

const styles = StyleSheet.create({
  container: {
      flex: 1,
      justifyContent: 'center',
      alignItems: 'center',
      backgroundColor: '#d6ffff',
      height: "100%",
      width: "100%"
  }

     class Login extends React.Component {
            render() {
          return (
            <View style={styles.container}>
              <Text style={styles.heading} > Login </Text>
            <TextInput
              style={styles.input}
              underlineColorAndroid="transparent"
              placeholder="Email"
              placeholderTextColor="#00bcd4"
              autoCapitalize="none"
            />
            <TextInput
              style={styles.input}
              underlineColorAndroid="transparent"
              placeholder="Password"
              placeholderTextColor="#00bcd4"
              autoCapitalize="none"
              secureTextEntry={true}
            />
                <Button 
                  title="Login" 
                  color='#00bcd4' 
                  onPress={() => this.props.navigation.navigate('MainMenu')} />
            </View>
           ); 
         }
        }
    const RootStack = createStackNavigator(
      {
        Login: Login
      }
    );
    export default createAppContainer(RootStack);


5 commentaires

Si possible, pourriez-vous partager votre code source.


Essayez d'ajouter display: 'flex' à la classe de conteneur.


@MazharHaque l'a ajouté, montre la même chose


@SDushan, montrant - un moment


@SDushan s'il vous plaît voir la question modifiée - iv mis dans mon extrait de code


3 Réponses :


1
votes
import {Dimensions, StyleSheet} from 'react-native';

{
   .... Your code
}

const styles = StyleSheet.create({
  container: {
      justifyContent: 'center',
      alignItems: 'center',
      backgroundColor: '#d6ffff',
      height: Dimensions.get('window').height,
      width: Dimensions.get('window').width,
  }
})

2 commentaires

Hé merci, cela a résolu le problème pour la moitié des pages - maintenant en plein écran, mais pour les autres, il est toujours à moitié. mais merci !


Salut, pourquoi utiliser la hauteur et la largeur au lieu de simplement flex: 1? Cela devrait fonctionner et couvrir tout votre écran, non?



0
votes
const styles = StyleSheet.create({
  container: {
      flex: 1,
      backgroundColor: '#d6ffff',
  }
})

2 commentaires

En général, les réponses sont beaucoup plus utiles si elles incluent une explication de ce que le code est censé faire et pourquoi cela résout le problème sans en présenter d'autres.


La réponse fournie a été signalée pour examen comme un message de faible qualité. Voici quelques conseils pour Comment rédiger une bonne réponse? . Cette réponse apportée pourrait bénéficier d'une explication. Les réponses codées uniquement ne sont pas considérées comme de «bonnes» réponses. À partir de Review .



0
votes

Je pense que vous n'avez pas besoin de propriétés de largeur et de hauteur:

const styles = StyleSheet.create({
  container: {
      flex: 1,
      justifyContent: 'center',
      alignItems: 'center',
      backgroundColor: '#d6ffff',
  }
})


0 commentaires