返回 导航

React / React Native

hangge.com

React Native - 状态栏组件(StatusBar)的使用详解

作者:hangge | 2017-03-30 08:10

一、StatusBar组件介绍


二、通用属性介绍

1,animated

(1)设置当状态栏的状态发生变化时,是否需要加入动画。
(2)动画支持 backgroundColorbarStyle hidden 属性的变化。

2,hidden

设置状态栏是否隐藏。下面左图为状态栏默认样式,右图为将状态栏隐藏。
          
import React, {Component} from 'react';
import {
    AppRegistry,
    StyleSheet,
    Text,
    View,
    StatusBar
} from 'react-native';

//默认应用的容器组件
class App extends Component {
    //渲染
    render() {
        return (
            <View style={styles.container}>
              <StatusBar hidden={true} />
            </View>
        );
    }
}

//样式定义
const styles = StyleSheet.create({
    container: {
        flex: 1,
        backgroundColor:'#1FB9FF'
    },
});

AppRegistry.registerComponent('HelloWorld', () => App);


三、仅支持iOS的属性

1,barStyle

用于设置状态栏文字的颜色,其值是枚举类型:
  • default:黑色文字(默认)
  • light-content:白色文字
下面代码我们将状态栏的文字颜色改成白色。
<StatusBar barStyle={'light-content'} />

2,networkActivityIndicatorVisible

设定网络活动指示器(就是那个菊花)是否显示在状态栏。
<StatusBar networkActivityIndicatorVisible={true} />

3,showHideTransition

通过 hidden 属性来显示或隐藏状态栏时所使用的动画效果,有两种选择:fade(默认值)、slide

四、仅支持Android的属性

1,backgroundColor

Android 设备上状态栏的背景颜色
<StatusBar backgroundColor={'blue'} />


2,translucent

<StatusBar translucent={true} />

3,StatusBar.currentHeight

React NativeAndroid 平台为 StatusBar 组件提供了一个静态常量 currentHeight,我们可以通过读取这个常量来得到 Android 手机状态栏的高度。
注意currentHeight 不是一个属性,我们直接访问 StatusBar.currentHeight 就可以了。

五、不同平台下状态栏的处理

1,Android 手机状态栏

(1)当状态栏呈现在 Andorid 手机屏幕顶部时,它会占用顶部这个空间,我们只能使用剩下的屏幕空间。也就是说如果从第 0 行开始放置组件时,组件会紧贴着状态栏的下边沿显示。
(2)要想知道实际可用的屏幕高度,可以通过手机屏幕的高度减去状态栏高度得到。

2,iOS 手机状态栏

(1)在 iOS 平台上,取得的屏幕高度就是实际可使用的高度。
(2)如果从第 0 行开始排列组件时,组件会紧贴着手机屏幕的最上沿显示。如果状态栏没有被隐藏,它将覆盖在第 0 行组件的上方。
(3)如果不想设置状态栏隐藏,则应当空出状态栏的显示区域。但可以为这个区域设置背景色,以使整个界面风格统一。
评论

全部评论(0)

回到顶部