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 (
            <View>
                <StatusBar
                    /* android 5 不支持字体和背景颜色变更 */
                    backgroundColor="#FFBC95"
                    barStyle="dark-content"
                />
                <Text>
                    Hello world!
                </Text>
            </View>
        );
    }
}

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 (
            <View>
                /* 隐藏状态栏 */
                {StatusBar.setHidden(true, "slide")}
                <Text>
                    Hello world!
                </Text>
            </View>
        );
    }
}

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

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

 

其他参数

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

 

总结

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,126评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,688评论 0 17
  • 曾经的我们 曾经的约定 曾经的风采 此刻的迷茫 只是此刻的笑话 不甘,绝望,无奈…… 成为孤独的一人 只有我懂 此...
    夕明阅读 118评论 0 0
  • 系列目录 NodeJS与Django协同应用开发(0) node.js基础知识 NodeJS与Django协同应用...
    AlfredX阅读 1,629评论 0 1
  • 做老师久了,“认真”两字成了挂在嘴边的口头禅。 经常说认真,可是近期忽然发现,原来,我认为的认真和一些...
    紫藤花开时阅读 422评论 4 5