react native 针对每个页面不同的StatusBar

官网参考地址:Different status bar configuration based on route · React Navigation

新的版本将不再使用StatusBar组件,而使用SafeAreaView。

直接上代码:

Home页面

import React, { Component } from "react";

import {

  StyleSheet,

  Text,

  Image,

  View,

  StatusBar,

  SafeAreaView,

  isAndroid

} from "react-native";

import Headerapp from "./components/Header";

export default class Index extends Component {

  render() {

    return (

      <SafeAreaView style={{backgroundColor:'#e12828',height:1}}>

        <View style={styles.container}>

          <Headerapp />

        </View>

      </SafeAreaView>

    );

  }

  componentDidMount() {

    this._navListener = this.props.navigation.addListener('didFocus', () => {

      StatusBar.setBarStyle('light-content'); //状态栏文字颜色

      StatusBar.setBackgroundColor('#e12828'); //状态栏背景色

    });

  }

  componentWillUnmount() {

    this._navListener.remove();

  }

}

const styles = StyleSheet.create({

  container: {

    flex: 1

  }

});

Video页面:

import React, { Component } from "react";

import {

  AppRegistry,

  StyleSheet,

  Text,

  Image,

  View,

  TouchableOpacity,

  SafeAreaView,

  StatusBar,

  isAndroid

} from "react-native";

export default class Index extends Component {

  render() {

    return (

      <SafeAreaView style={{backgroundColor:'#9626e4'}}>

        <View style={styles.container}>

          <Text>视频界面</Text>

        </View>

      </SafeAreaView>

    );

  }

  componentDidMount() {

    this._navListener = this.props.navigation.addListener("didFocus", () => {

      StatusBar.setBarStyle("dark-content"); //状态栏文字颜色

      StatusBar.setBackgroundColor("#ffffff"); //状态栏背景色

    });

  }

  componentWillUnmount() {

    this._navListener.remove();

  }

}

const styles = StyleSheet.create({

  container: {

    flex: 1,

    backgroundColor: "#F5FCFF"

  }

});

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容