Avoid status bar overlap on all screens

前端 未结 2 1060
误落风尘
误落风尘 2021-01-01 23:37

I want all screens on my app to appear below the status bar on both iOS and Android, so I\'d either have to add a StatusBar component or a paddingTop

相关标签:
2条回答
  • 2021-01-01 23:50

    Step 1: Import Platform and StatusBar

    import { Platform, StatusBar} from 'react-native';
    

    Step 2: Add this style in parent View

    paddingTop: Platform.OS === 'android' ? StatusBar.currentHeight : 0 
    

    Full Code:

    import React, { Component } from 'react';
        import {
          Text, View,
          Platform, StatusBar
        } from 'react-native';
    
        export default class App extends Component {
          render() {
            return (
              <View style={{ paddingTop: Platform.OS === 'android' ? StatusBar.currentHeight : 0 }}>
                <Text>This is Text</Text>
              </View>
            );
          }
        }
    
    0 讨论(0)
  • 2021-01-02 00:14

    You can create a <NavigationContainer/> component to hold all your different pages, so that you don't need to duplicate the StatusBar and padding code in every single screen component.

    I created a example in here: https://snack.expo.io/SyaCeMOwW

    And nothing need to change in term of your navigation structure or redux flow.

    0 讨论(0)
提交回复
热议问题