在 iOS 上带有 expo 的 React-native statusBar

问题描述 投票:0回答:2

我试图更改我的反应本机应用程序上

statusBar
的颜色。

我正在与

expo
合作,在他们的文档中,他们只是指定添加:
"androidStatusBar": {
      "backgroundColor": "#2E1D59"
    }

这在 Android 上工作得很好,但他们没有提到如何在 iOS 状态栏上做到这一点。

有人对此有想法吗?

android ios react-native statusbar expo
2个回答
18
投票

您无法更改 iOS 状态栏的颜色。

您可以使用 React Native StatusBar 模块将其隐藏,或将文本颜色设置为浅色(白色)或深色(黑色)。

您只需将该组件拖放到应用程序的根组件中即可:

 <StatusBar barStyle="light-content" /> 

0
投票

您无法设置

StatusBar
本身的背景颜色,但您的组件可以填充该空间,并且您可以在组件上设置颜色。然后使用
StatusBar
组件告诉 iOS 更改文本颜色。

import { StatusBar } from 'expo-status-bar';
import React, { useEffect, useState } from 'react';
import { Appearance, View } from 'react-native';

export default function App() {
  const [colorScheme, setColorScheme] = useState(Appearance.getColorScheme());

  useEffect(() => {
    const subscription = Appearance.addChangeListener(({ colorScheme }) => {
      setColorScheme(colorScheme);
    });

    return () => {
      subscription.remove();
    };
  }, []);

  return (
    <View style={{ flex: 1, backgroundColor: colorScheme === 'dark' ? 'black' : 'white' }}>
      <StatusBar style={colorScheme === 'dark' ? 'light' : 'dark'} />
      {/* Your app content */}
    </View>
  );
}
© www.soinside.com 2019 - 2024. All rights reserved.