前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >移动跨平台框架React Native状态栏组件StatusBar【16】

移动跨平台框架React Native状态栏组件StatusBar【16】

作者头像
江咏之
发布2022-06-17 14:51:28
2.1K0
发布2022-06-17 14:51:28
举报
文章被收录于专栏:技术社区技术社区

React Native,是一个混合移动应用开发框架,是目前流行的跨平台移动应用开发框架之一。React Native 采用不同的方法进行混合移动应用开发。它不会生成原生 UI 组件,而是基于 React,React Native 是一个用于构建基于 Web 的交互界面的 JavaScript 库,因此会有更丰富的 UI 体验效果,同时也能够很好地调用底层框架的UI使用。

React Native 状态栏组件 StatusBar

状态栏 StatusBar 就是手机屏幕最顶上一个区域,包含 运营商名称网络情况电池情况那一条

暗色系

React Native  状态栏  StatusBar
React Native 状态栏 StatusBar

亮色系

React Native  状态栏  StatusBar
React Native 状态栏 StatusBar

在 React Native 中我们可以定制 状态栏 StatusBar 。当然了,说是定制,无非以下几点

  1. 显示或隐藏状态栏。
  2. 设置主题色:亮色系还是暗色系。
  3. 设置显示或隐藏时是否启用动画。

React Native 提供了 `` 组件来做上面这些事情。

引入组件

代码语言:javascript
复制
import { StatusBar } from 'react-native'

使用语法

代码语言:javascript
复制
<StatusBar 
    barStyle    = "dark-content|light-content" 
    hidden      = {true|false}
    animated    = {true|false}
/>

注意

React Native 中的 StatusBar 采用覆盖规则,我们可以在一个页面中定义多个 。 后面定义的 的属性会覆盖前一个 `` 设置的属性。

代码语言:javascript
复制
<View>
  <StatusBar backgroundColor="blue" barStyle="light-content" />
  <View>
    <StatusBar hidden={route.statusBarHidden} />
    ...
  </View>
</View>

静态方法

除了可以使用属性来设置状态栏外,React Native 中的 StatusBar 还提供了一些静态方法用来设置状态栏。

枚举常量

  1. StatusBarStyle StatusBarStyle 枚举常量定义了状态栏可用的主题色. 值说明 值说明default默认主题色,iOS 上是 dark-content ,Android 是 light-contentlight-content暗色的背景,亮色的文字和图标dark-content亮色的背景,暗色的文字和图标( Android 要求 API >= 23 )
  2. StatusBarAnimation StatusBarAnimation 枚举常量定义了状态栏可用的动画效果。 值说明 值说明none默认,没有动画效果fade渐隐渐现动画效果slide渐入渐出动画效果

范例

范例 1

下面的代码,我们设置状态栏 StatusBar 的主题色为 暗色系,同时显示状态栏。

App.js
代码语言:javascript
复制
import React, { Component } from 'react';
import { StatusBar } from 'react-native'

const App = () => {
   return (
      <StatusBar barStyle = "dark-content" hidden={false} />
   )
}
export default App

运行效果如下

React Native  状态栏  StatusBar
React Native 状态栏 StatusBar

范例2

下面的代码,我们使用脚本来控制状态栏的显示和隐藏,使用脚本来控制状态栏的主题色

App.js
代码语言:javascript
复制
import React, { Component } from 'react';
import {View, Text, StatusBar, StyleSheet, TouchableOpacity} from 'react-native'

class App extends Component {

   state = {
      hidden:false,
      barStyle:'default'
   }

    changeHidden = () =>{
      var hidden = this.state.hidden ? false : true;
        this.setState({ hidden: hidden })
    }

    changeBarStyle = () =>{
      var  barStyle = this.state.barStyle == 'light-content' ? 'dark-content' : 'light-content';
        this.setState({ barStyle: barStyle })
    }

    render() {
      return (
         <View>
            <StatusBar barStyle = {this.state.barStyle} hidden={this.state.hidden} />
            <TouchableOpacity style={styles.button} onPress = {this.changeHidden}>
               <Text>显示或隐藏</Text>
           </TouchableOpacity>
           <TouchableOpacity style={styles.button} onPress = {this.changeBarStyle}>
               <Text>改变主题色</Text>
           </TouchableOpacity>
        </View>
      )
   }
}
export default App

const styles = StyleSheet.create ({
    button: {
        backgroundColor: '#4ba37b',
        width: 100,
        borderRadius: 50,
        alignItems: 'center',
        marginTop: 100
    }
})

演示效果如下

大家知道为什么隐藏的时候有一条黑色的条吗?

“” src=“https://www.twle.cn/static/upload/img/2019/07/11/20190711080818_4.mp4” style=“box-sizing: border-box; display: inline-block; vertical-align: baseline;”>

大家知道为什么隐藏的时候有一条黑色的条吗?

那是因为的实体机是全屏手机,顶部的中央有一个 摄像头

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • React Native 状态栏组件 StatusBar
    • 引入组件
      • 使用语法
        • 注意
      • 静态方法
        • 枚举常量
          • 范例
            • 范例 1
            • 范例2
        相关产品与服务
        云开发 CloudBase
        云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档