16

我正在使用带有指数的 NativeBase。标题位于手机的状态栏下方。您可以在 Exponent 发布的NativeBase演示中看到这一点。

在此处输入图像描述

有没有人可以解决这个问题?

4

5 回答 5

35

由于此问题仅在 Android 中出现,因此建议的解决方法是专门使用Platform来针对 Android :

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

const styles = StyleSheet.create({
    container: {
            flex: 1,
            ...Platform.select({
                android: {
                    marginTop: StatusBar.currentHeight
                }
            })

        }
})

其中 container 是应用程序中的主要容器。

<View style={styles.container}>
 // rest of the code here
</View>
于 2017-09-08T04:31:34.617 回答
6

我最终添加了一个带有设备状态栏值的 marginTop。

import {
  StatusBar,
} from 'react-native'

在我的全局样式表中:

header: {
  marginTop: StatusBar.currentHeight,
}
于 2017-02-08T01:50:07.913 回答
2

旧帖子,但最近我在世博会上遇到了同样的问题。我通过将此行添加到 app.json 文件来克服这个问题。

“androidStatusBar”:{“backgroundColor”:“#000000”}

app.json 文件

{
  "expo": {
    "name": "You App Name",    
    "androidStatusBar": {
      "backgroundColor": "#000000"
    }
  }
}

这解决了我的问题。我认为这可能对其他人有所帮助。

于 2018-08-03T08:35:48.640 回答
0

我找到了一种更好的方法来使用 StyleProvider 和我的主题来处理这个问题,然后进入 de components 文件夹(native-base-theme/components)找到 Header.js 文件并更改 paddintTop 值(大约 305 行)

于 2017-06-23T16:38:26.170 回答
0

这个问题有一个简单的解决方案,只需导入 StatusBar 组件并使用这个标签:

<StatusBar hidden />

例如在一个页面中:

/*
  Page with no statusbar
*/
import React, {Component} from 'react'
import {Platform, View, Text, StatusBar} from 'react-native'

export default class App extends React.Component{
  render(){
    return(
        <View>
        <StatusBar hidden />
         <Text> Hello World </Text>
        </View>
    );
  }
}

该组件适用于 expo 和 react-native-cli 最新版本。如需更多帮助,您可以将ReactNative 文档用于 StatusBar

于 2019-07-31T11:12:35.697 回答