[React Native]StatusBar的使用

StatusBar是React Native 0.20 新增的跨平台组件,它可以用来设置并动态改变设备的状态栏显示特性。

虽然说是跨平台的组件, 但是有些属性不是跨平台的 ,我们需要注意下。因为IOS和Android本身有些区别,使用这个组件最好都要适配的。

属性

属性名 描述
animated 布尔类型,用来设定颜色样式改变或者隐现时是否有动画,默认false
hidden 布尔类型,用来设定颜色样式改变或者隐现时是否有动画,默认false

Android:

Android特有属性 描述
backgroundColor Android设备上状态栏的背景颜色
translucent 布尔类型,状态栏是否半透明,如果为true,应用将从物理顶端开始显示

IOS:

IOS特有属性 描述
barStyle 取值为default(默认)或light-content,用来设定状态栏的文字颜色
networkActivityIndicatorVisible 布尔类型,设定网络活动指示器(就是那个菊花)是否显示在状态栏
showHideTransition fade’, ‘slide’二选一,通过hidden属性来显示或隐藏状态栏时所使用的动画效果。默认值为’fade’。

属性比较简单,直接看例子:

class AwesomeProject extends Component {

    render() {
        return (
            // 为了保重TextInput组件居中显示多用一个View包裹
            <View style={styles.container}>
                <StatusBar
                    animated={true}
                    hidden={false}
                    backgroundColor={'blue'}
                    translucent={true}
                    barStyle={'default'}
                    showHideTransition={'fade'}
                    networkActivityIndicatorVisible={true}
                />
            </View>

        );
    }
}

这份代码既有Android独有属性,也有IOS独有属性,在不同的平台下表现不一样,

IOS运行结果:

Android运行结果:

与Navigator搭配的用法

StatusBar组件可以同时加载多个。此时属性会按照加载顺序合并(后者覆盖前者)。一个典型的用法就是在使用Navigator时,针对不同的路由指定不同的状态栏样式,如下:

 <View>
   <StatusBar
     backgroundColor="blue"
     barStyle="light-content"
   />
   <Navigator
     initialRoute={{statusBarHidden: true}}
     renderScene={(route, navigator) =>
       <View>
         <StatusBar hidden={route.statusBarHidden} />
         ...
       </View>
     }
   />
 </View>

更多精彩请关注微信公众账号likeDev

时间: 2024-11-02 10:15:00

[React Native]StatusBar的使用的相关文章

《React Native移动开发实战》一一3.5 拖曳刷新列表——RefreshControl组件

3.5 拖曳刷新列表--RefreshControl组件 在3.4节中,我们完善了商品列表的功能:不仅优化了列表的布局,还添加了分割线等效果.不过,该App还缺少一个常用的功能,那就是拖曳刷新.虽然也可以添加一个"刷新"按钮用于响应用户请求,但是用户体验却没有拖曳好,而且,由于现在移动开发设备屏幕通常较小,额外添加按钮对界面设计影响也较大. ?小知识:用户体验(User Experience,简称UX或UE)是涉及一个人使用一个特定产品或系统或服务的有关行为.态度与情绪.用户体验包括实

三步将 React Native 项目运行在 Web 浏览器上面

React Native 的出现,让前端工程师拥有了使用 JavaScript 编写原生 APP 的能力.相比之前的 Web app 来说,对于性能和用户体验提升了非常多. 但是 React Native 的代码只兼容两个平台(iOS 和 Android),并没有兼容 Web 端访问.这里是因为 Facebook 开发人员认为 Web 端天生兼容性就巨麻烦,而且平台差异性是注定存在而且也要保留的,所以 React Native 的目标是 Learn once, write anywhere,而不

react native anoroid-React native windows android 运行React packager报错

问题描述 React native windows android 运行React packager报错 10C 环境已搭建完毕,也可正常运行,但一改动index.android.js 有时packager会报错.如图: 解决方案 是不是你的环境没有搭建好:http://chenpeng.info/html/3507

React Native JS Module 加载性能优化

关于React Native 性能 React Native 在手淘中已开始逐步推广, 在拍立淘首页的使用场景中,我们发现React Native并没有想 象中的那么快,实测效果在离线状态下性能甚至比不过H5 WindVane,React Native的UI会出现延迟渲 染存在视觉差,经过具体的代码性能测试,整个过程平均在300 ms (IPhone 5S机型下,整个JS文件 400K), 然后其核心系统调用代码加载解析整个JS (JSEvaluateScript)耗时在220 ms左右,在目前

react native在growth stack中的角色思考

Growth Hacker在国内外的互联网界近几年都是比较火热的词,互联网巨头Facebook也许是践行Growth Hacker最好的公司.然而概念吵的火并不等于做的好,如何落地Growth Hacker其实是一件比较困难的事情.最近从twitter上挖到一篇文章,推荐了MobileGrowthStack,该文章维护着关于做Growth Stack的框架,为想要落地Growth Hacker的公司提供帮助.其最主要的输出应该就是下面这样图. 稍微简单的描述下这样图.该技术栈有三个层次,分别用来

React Native在特赞的应用与实践

作者:苑永志 作者介绍:现任特赞大前端负责人.技术涉猎比较广泛,曾在大麦网担任高级Java研发工程师:后以前端工程师身份加入特赞,基于React技术栈构建开发前端项目,并使用React Native开发特赞移动APP:目前正在使用Node.js开发和维护特赞服务网关,希望Node.js能够在更轻量级的微服务架构中发挥重要作用. 一.需求缘起 特赞是在2016年末才开始着手APP开发的.记得那是距离过年还有一个月的时候,产品突然提出一个需求:咱们做一个iOS应用吧,快过年了,给设计师一个新年礼物.

Hybrid App 和 React Native 开发那点事

简介:Hybrid App(混合模式移动应用)开发是指介于Web-app.Native-App这两者之间的一种开发模式,兼具「Native App 良好用户交互体验的优势」和「Web App 跨平台开发的优势」.很多人都知道,React Native 是 Facebook 开源的框架,可以直接用 Javascript 开发原生的APP,本文则会围绕开发中的具体实践问题进行讨论. 此前,我们在多篇文章中提到过 React Native,本次移动精英开发俱乐部又专门围绕 Hybrid App 和 R

如何用 React Native 创建一个iOS APP?

诚然,React Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用.在 JavaScript 中用 React 抽象操作系统原生的 UI 组件,代替 DOM 元素来渲染等. React Native 使你能够使用基于 JavaScript 和 React 一致的开发体验在本地平台上构建世界一流的应用程序体验.React Native 把重点放在所有开发人员关心的平台的开发效率上--开发者只需学习一种语言就

《React Native移动开发实战》一一1.2 React Native的特点

1.2 React Native的特点 那么,作为跨平台应用开发的"新贵",React Native相比其他跨平台技术到底有哪些优势呢?1.2.1 其一:Learn Once, Write Anywhere 这句话是React Native官网(http://facebook.github.io/react-native/)对React Native的概述,简单明了地概括了React Native的最大特点和优点. 只需要学习React Native这一种开发方式(包括平台.语言和开发