1.  状态栏组件,react native文档提供了说明。我需要的是设置透明效果,如下图。

代码如下

 <StatusBar translucent={true} backgroundColor="rgba(0, 0, 0, 0)" />

解释:StatusBar设置在哪个页面,加载该页面时才会生效。而且作用全局。我们的项目需要,仅仅是透明就可以,我就在登陆界面设置就可以。

2.  安全区域,react native文档提供了safeAreaView,但有问题目前支持IOS,不兼容Android 。我使用了react-navigation里提供的safeAreaView,会导致状态栏透明修过不对。最后采用了第三方库。

react-native-safe-area-view 中它提供的safeAreaView。

最后总的代码

import * as React from 'react';
import { View,Text, StatusBar, Button, StyleSheet,ImageBackground } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack'; // 导入 SafeAreaProvider ,包裹根组件路由
import { SafeAreaProvider } from 'react-native-safe-area-context';
// 包裹组件
import SafeAreaView from 'react-native-safe-area-view'; function Screen1({ navigation }) {
return (
<SafeAreaView style={[styles.container]}>
<StatusBar translucent={true} backgroundColor="rgba(0, 0, 0, 0)" />
<ImageBackground style={[styles.imgBackground]} source={require('./img/my_img_bg.png')}>
<Text>你好世界</Text>
</ImageBackground>
<Text style={{color: '#fff'}}>Light Screen</Text>
<Button
title="Next screen"
onPress={() => navigation.navigate('Screen2')}
color="#fff"
/>
</SafeAreaView>
);
} function Screen2({ navigation }) {
return (
<SafeAreaView style={[styles.container]}>
<StatusBar translucent={true} backgroundColor="rgba(0, 0, 0, 0)" />
<ImageBackground style={[styles.imgBackground]} source={require('./img/my_img_bg.png')}>
<Text>另一个组件</Text>
</ImageBackground>
<Button
title="Next screen"
onPress={() => navigation.navigate('Screen1')}
/>
</SafeAreaView>
);
} const Stack = createStackNavigator(); export default function App() {
return (
<SafeAreaProvider>
<NavigationContainer>
<Stack.Navigator headerMode="none">
<Stack.Screen name="Screen1" component={Screen1} />
<Stack.Screen name="Screen2" component={Screen2} />
</Stack.Navigator>
</NavigationContainer>
</SafeAreaProvider>
);
} const styles = StyleSheet.create({
container: { flex: 1 },
imgBackground:{
flex:0,
height: 280,
width:"100%",
},
});

3.  每个页面,不同的statusBar

最新文章

  1. Selenium2+python自动化23-富文本(自动发帖)
  2. 使用UEditor无法SetContent的问题
  3. oracle体系结构详细示意图
  4. node-webkit中使用sqlite3(MAC平台)
  5. acdream 1681 跳远女王(BFS,暴力)
  6. silverlight 文本框只能输入数字
  7. Java操作字符串的工具类
  8. Linux基本配置和管理 1---- Linux网络基本配置
  9. wx_sample.php
  10. EF一次请求公用一个实例
  11. web.confgi转换,web发布时发布配置(debug/release)生成不同的配置文件
  12. C#运算符的简单使用测试
  13. 6B - 火星A+B
  14. 动态sql and在前 逗号在后
  15. .Net反编译软件
  16. datatables 添加excel下载
  17. 杭电多校第三场 A Ascending Rating
  18. Jmeter-接口功能测试
  19. 剑指offer:二叉树的镜像
  20. Ueditor结合七牛云存储上传图片、附件和图片在线管理的实现和最新更新

热门文章

  1. springboot跨域解决
  2. 【一句话】Redis的3中缓存策略
  3. 计算机网络基础08 Socket网络通信
  4. 无法加载 DLL“*******.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。
  5. 1 .NET Core笔试题
  6. NETAPP 设备 C模式开关机顺序
  7. Autoit 制作上传工具完美版
  8. 线段树优化DP学习笔记 &amp; JZOJ 孤独一生题解
  9. CF1141F2 Same Sum Blocks (Hard)
  10. postgresql 数据库 INSERT 或 UPDATE 大量数据时速度慢的原因分析