ReactNative: 使用StatusBar状态栏

一、简介

在iOS中可以使用UIStatusBar控件改变App的状态栏,同样地,React-Native中可以使用StatusBar组件来控制。

二、API

属性:

//是否隐藏
hidden?: boolean,

//是否支持动画
animated?: boolean,

//设置背景色, 限安卓使用
backgroundColor?: $FlowFixMe,

//是否透明
translucent?: boolean,

//状态栏样式  默认、白色、黑色
barStyle?: ‘default‘ | ‘light-content‘ | ‘dark-content‘,

//是否显示网络指示器 仅限iOS使用
networkActivityIndicatorVisible?: boolean,

//设置隐藏的动画
showHideTransition?: ‘fade‘ | ‘slide‘, 

方法:

//静态方法,隐藏状态栏
static setHidden(hidden: boolean, animation?: StatusBarAnimation)

//静态方法,设置状态栏样式
static setBarStyle(style: StatusBarStyle, animated?: boolean)

//静态方法,设置网络指示器,仅限iOS使用
static setNetworkActivityIndicatorVisible(visible: boolean)

//静态方法,设置背景色,仅限安卓使用
static setBackgroundColor(color: string, animated?: boolean)

//静态方法,设置透明度
static setTranslucent(translucent: boolean)

三、使用

使用方法设置

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */

import React, { Component } from ‘react‘;

import {
    AppRegistry,
    StyleSheet,
    View,
    Text,
    StatusBar,
    TouchableHighlight
} from ‘react-native‘;

export default class ReactNativeDemo extends Component {

    constructor(props){
        super(props);
        this.state = {
            show: true
        }
    }

    //初始化状态栏
    componentWillMount() {

        //白色模式  ‘default‘: 默认模式  | ‘light-content‘:白色模式 | ‘dark-content‘:默认黑色模式 ,
        StatusBar.setBarStyle("light-content", true);

        //显示网络指示器
        StatusBar.setNetworkActivityIndicatorVisible(true);

        //隐藏的动画模式  ‘fade‘: | ‘slide‘:
        StatusBar.showHideTransition = ‘slide‘;
    }

    showHideStatusBar() {
        this.setState({show:!this.state.show});
        StatusBar.setHidden(this.state.show, true);
    }

    render() {
        return (
            <View style={[styles.flex,styles.bgColor,styles.center]}>
                <TouchableHighlight onPress={this.showHideStatusBar.bind(this)}>
                    <Text>点击显示或者隐藏状态栏</Text>
                </TouchableHighlight>
            </View>
        );
    }
}

const styles = StyleSheet.create({
    flex: {
        flex: 1
    },
    bgColor: {
      backgroundColor: ‘#1FB9FF‘
    },
    center: {
        alignItems: ‘center‘,
        justifyContent: ‘center‘
    }
});

AppRegistry.registerComponent(‘ReactNativeDemo‘, () => ReactNativeDemo);

使用属性设置

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */
import React, { Component } from ‘react‘;

import {
    AppRegistry,
    StyleSheet,
    View,
    StatusBar,
} from ‘react-native‘;

export default class ReactNativeDemo extends Component {

    render() {
        return (
            <View style={[styles.flex,styles.bgColor,styles.center]}>
                <StatusBar animated={true}
                           hidden={false}
                           backgroundColor={‘blue‘}
                           translucent={true}
                           barStyle={‘light-content‘}
                           showHideTransition={‘fade‘}
                           networkActivityIndicatorVisible={true}
                />
            </View>
        );
    }
}

const styles = StyleSheet.create({
    flex: {
        flex: 1
    },
    bgColor: {
      backgroundColor: ‘#1FB9FF‘
    },
    center: {
        alignItems: ‘center‘,
        justifyContent: ‘center‘
    }
});

AppRegistry.registerComponent(‘ReactNativeDemo‘, () => ReactNativeDemo); 

原文地址:https://www.cnblogs.com/XYQ-208910/p/12109106.html

时间: 2024-08-04 14:31:11

ReactNative: 使用StatusBar状态栏的相关文章

Android应用:StatusBar状态栏、NavigationBar虚拟按键栏、ActionBar标题栏、Window屏幕内容区域等的宽高

一.屏幕中各种栏目以及屏幕的尺寸 当我们需要计算屏幕中一些元素的高度时,或许需要先获取到屏幕或者各种栏目的高度,下面这个类包含了Status bar状态栏,Navigation bar虚拟按键栏,Action bar标题栏, Window屏幕内容等的宽高的计算,可以带来极大的方便. 因为我在代码中做了比较详尽的注释,在这里不再多阐述,以下是代码: 1 /** 2 * 这个类描述了当前设备的配置中system bar的尺寸(StatusBar状态栏,NavigationBar虚拟按键栏,Actio

设置statusBar状态栏颜色

设置statusBar的[前景部分] 简单来说,就是设置显示电池电量.时间.网络部分标示的颜色, 这里只能设置两种颜色: 默认的黑色(UIStatusBarStyleDefault) 白色(UIStatusBarStyleLightContent) 可以设置的地方有两个:plist设置里面 和 程序代码里 1.plist设置statusBar 在plist里增加一行 UIStatusBarStyle(或者是“Status bar style”也可以),这里可以设置两个值,就是上面提到那两个 UI

[转载]ExtJs4 笔记(12) Ext.toolbar.Toolbar 工具栏、Ext.toolbar.Paging 分页栏、Ext.ux.statusbar.StatusBar 状态栏

作者:李盼(Lipan)出处:[Lipan] (http://www.cnblogs.com/lipan/)版权声明:本文的版权归作者与博客园共有.转载时须注明本文的详细链接,否则作者将保留追究其法律责任. 本篇讲解三个工具栏控件.其中Ext.toolbar.Toolbar可以用来放置一些工具类操控按钮和菜单,Ext.toolbar.Paging专门用来控制数据集的分页展示,Ext.ux.statusbar.StatusBar用来展示当前的状态信息. 一.Ext.toolbar.Toolbar

statusBar状态栏_03

iOS7 中的StatusBar和之前版本的相比发生了很大变化,在iOS7下对statusbar的使用需要全新的方法,现在就总结以下statusbar的方法: 样式 显示和隐藏 动画效果 默认无StatusBar 1. 样式 StatusBar有两种样式: UIStatusBarStyleDefault : UIStatusBarStyleLightContent 要改变StatusBar的显示样式需要在UIViewController中重载: - (UIStatusBarStyle)prefe

statusBar状态栏_02

苹果终于发布了iOS 7正式版,大批的用户都已经纷纷进行了升级.如果App是由Xcode 4.6或者更早版本生成,iOS 7系统会使用兼容模式运行该App,以便尽可能保持原有外观.但是,当使用Xcode 5重新编译App源代码时,此时会使用iOS 7 SDK来进行编译链接.(注意在使用Xcode 5打开旧项目之前备份项目源代码,因为Xcode 5会升级项目中的资源文件,且无法再使用旧版本的Xcode打开.)由于iOS 7 SDK较早期版本的SDK改动较大,因此App的界面也会出现种种问题,其中最

iOS StatusBar状态栏文字颜色更改

1.将单个页面的StatusBar文字颜色改为白色,动态更改也可以在这里设置 -(UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleLightContent; } 2.将所有页面的StatusBar文字颜色改为白色 plist文件中View controller-based status bar appearance 设置为 NO 在这种情况下,将单个页面的文字颜色更改为黑色 -(void)viewWillAppe

react-native 沉浸式状态栏

使用StatusBar即可实现沉浸式,但是必须把背景色设置为透明.否则如果有不同页面的头部颜色不一样的话,导航栏的颜色动画会很怪异,不会是跟着页面一起动画. <StatusBar barStyle='light-content' backgroundColor='rgba(0,0,0,0)' translucent={true}></StatusBar> 原文地址:https://www.cnblogs.com/hl1223/p/10912119.html

iOS statusBar 状态栏定制

1 UIWindow * statusWindow = [[UIWindow alloc] initWithFrame:[UIApplication sharedApplication].statusBarFrame]; 2 [statusWindow setWindowLevel:UIWindowLevelStatusBar + 1]; 3 [statusWindow setBackgroundColor:[UIColor clearColor]]; 4 5 UILabel * statusL

01- - -1.获得项目中info.plist文件的内容 2.沙盒的数据存储及读取 3.控制器view的高度和状态栏statusBar的关系 4.[UIScreen mainScreen].applicationFrame的取值 5.按钮的状态 6.错误调试技巧 7.按钮的各种状态设置

1.获得项目中info.plist文件的内容 1> [NSBundle mainBundle].infoDictionary 2> 版本号在info.plist中的key:kCFBundleVersionKey 2.沙盒的数据存储及读取 1> 数据存储: [[NSUserDefaults standardUserDefaults] setObject:version forKey:versionKey]; 存储数据时记得同步一下 [[NSUserDefaults standardUser