react-native--08StatusBar

StatusBar : 电源、信号、蓝牙、wifi状态显示栏,也就是所谓的状态栏;
react native 也提供了StatusBar组件用来控制状态栏的字体颜色、背景颜色可以达到与app主题颜色一致效果, 同时也额外提供了隐藏、过度效果;
虽然android和ios的状态栏都有固定的高度,但是android的状态栏高度是block形式、而ios的状态栏高度是absolute方式;
block形式是指,非状态栏内容必须排在状态栏下面;
absolute形式是指,非状态栏内容默认是会与状态栏图标、状态栏文字产生重叠,由开发者自行margin-top或padding-top去留白;
注意事项:
android系统版本5无法设置状态栏背景颜色(对应的api是google 22api);
具体原因是, google在android系统版本6时才开放该接口(对应的api是 google 23api);

 

更改状态栏颜色

import React, { Component } from 'react';
import { AppRegistry, Text, View, StatusBar, StatusBarIOS, BackHandler } from 'react-native';


export default class BlinkApp extends Component {
    render() {
        return (
            
                
                
                    Hello world!
                
            
        );
    }
}

AppRegistry.registerComponent('myApp', () => BlinkApp);

参数介绍
backgroundColor: 背景颜色
barStyle: 字体颜色, 有三个选项: default、light-content和dark-content, default表示采用系统默认字体颜色, light-content表示采用白色字体, dark-content表示采用黑色字体.

 

隐藏状态栏

import React, { Component } from 'react';
import { AppRegistry, Text, View, StatusBar, StatusBarIOS, BackHandler } from 'react-native';


export default class BlinkApp extends Component {
    render() {
        return (
            
                /* 隐藏状态栏 */
                {StatusBar.setHidden(true, "slide")}
                
                    Hello world!
                
            
        );
    }
}

AppRegistry.registerComponent('myApp', () => BlinkApp);

介绍
这里移除了是因为,该场景目的是隐藏状态栏,因此可以省略掉背景颜色和字体颜色的设置;
StatusBar.setHidden: 一个静态方法,用于隐藏状态栏, 第一个参数支持: true和false,true表示隐藏, false表示不隐藏, 默认是false; 第二个参数支持: none、fade和slide, none表示没有特效, fade表示渐现或渐隐, slide表示滑动;

 

其他参数

更多参数和方法请参考官网API介绍

 

总结

ios不支持背景颜色更改, 但是由于它状态栏是absolute的原因, 其实完全可以交给布局时预留marginTop或者paddingTop来设置该区域的颜色或者背景图等.

你可能感兴趣的:(react-native--08StatusBar)