Iphone 5 状态栏被 React Native 覆盖

Posted

技术标签:

【中文标题】Iphone 5 状态栏被 React Native 覆盖【英文标题】:Iphone 5 status bar is being covered React Native 【发布时间】:2019-03-27 02:15:15 【问题描述】:

我的代码在大多数 iPhone 上都可以正常工作,但在 Iphone 5 上,状态栏已被视图覆盖,我不知道如何在 Iphone 5 中为视图设置边距,仅当我在视图中使用顶部边距时,它看起来在其他 iPhone 中很奇怪

componentWillMount() 
        this.startHeaderHeight = 45
        this.marginTopHeader = 0
        this.iconMargin = 9
        if (Platform.OS == 'android') 
            this.startHeaderHeight = 30 + StatusBar.currentHeight
            this.marginTopHeader = 23 + this.marginTopHeader
            this.iconMargin = this.iconMargin
        

    
    render() 
        var width = Dimensions.get('window').width - 128;
        var height = Dimensions.get('window').height;
        return (
            <SafeAreaView  style=
                height: this.startHeaderHeight, flexDirection: 'row',
                borderBottomColor: '#ddd', backgroundColor: '#3A3658', marginTop: this.marginTopHeader
             >

                <Icon
                    lightTheme
                    style= marginLeft: 8, marginRight: 5, marginTop: this.iconMargin, color: 'white'  size=25 name="ios-menu" onPress=() => 
                        this.props.draw();
                        />
            <View style=position: 'absolute', right: 7>

                <Icon style= color: '#fff',marginTop: this.iconMargin ,padding:0, size=25 name="ios-cart" onPress=() => 
                        this.props.cart();
                    >
                   <Text style=color:'red', fontWeight:'bold', fontSize:10>this.props.cartItemCount</Text>

                    </Icon>

</View>
            </SafeAreaView >

【问题讨论】:

【参考方案1】:

你可以试试这样写。

<View style=flex: 1, backgroundColor: 'white' >
        /* header */
        <View style=paddingTop: system.ios.x ? 22 : 0>
          <View style=
            height: Platform.select(ios: 64, android: 44),
            backgroundColor: 'white',
            justifyContent: 'flex-end'
          >
          `enter code here`
          </View>
        </View>
</View>

【讨论】:

以上是关于Iphone 5 状态栏被 React Native 覆盖的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationBar 的高度错误,因为加载时状态栏被隐藏

Bootstrap 下拉菜单 - 如果搜索栏被聚焦,则保持打开状态

解决WeX5中IOS设备应用标题栏被系统状态栏覆盖的BUG

在 React Native 的 iPhone 设置上手动禁用后如何检测 PushNotificationIOS 状态?

iPhone模拟器保持状态栏在视图中

React Native Style