RN获取iOS刘海屏除刘海外全屏高度以及安卓状态栏的StatusBar的设置

yarn add react-native-safe-area-context

import React, {useState, useEffect} from 'react';
import {SafeAreaView, View, StyleSheet, Dimensions, Text} from 'react-native';
import {useSafeAreaInsets} from 'react-native-safe-area-context';

const App = () => {
  const insets = useSafeAreaInsets();
  const [fullScreenHeight, setFullScreenHeight] = useState(
    Dimensions.get('window').height,
  );

  useEffect(() => {
    // 计算全屏高度,包括刘海区域
    console.log('insets', insets); // top就是刘海屏的高度
    console.log('Dimensions.get',Dimensions.get('window').height);
    // 总高度 - 刘海屏高度就是SafeAreaView的全屏
    setFullScreenHeight(Dimensions.get('window').height - insets.top);
  }, [insets]);

  return (
    <SafeAreaView style={styles.container}>
      <View
        style={{
          height: fullScreenHeight,
          backgroundColor: 'pink',
        }}>
        <Text>除刘海外的全屏高度为:{fullScreenHeight}</Text>
        {/* 这里放置您的组件 */}
      </View>
    </SafeAreaView>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
  },
});

export default App;

安卓里面获取状态栏高度以及状态栏常见属性

    // 在安卓里面获取状态栏高度如下
    import { StatusBar, Platform } from 'react-native';
	const statusBarHeight = Platform.OS === 'android' ? StatusBar.currentHeight : 0;
	console.log('状态栏高度:', statusBarHeight);
	  
	StatusBar.setBarStyle('dark-content', false);  // 参数一是设置状态栏文本颜色,参数二指定是否有过渡动画
    StatusBar.setBackgroundColor('transparent', false); // 参数同上,这个设置的是背景颜色
    StatusBar.setTranslucent(true); // 设置全屏是否包含状态栏,默认全屏是不包含状态栏的,当设置为true,代表全屏高度也包含了状态栏,状态栏不会将界面撑起来了
    StatusBar.currentHeight // 获取状态栏高度

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萧寂173

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值