1. ホーム
  2. ios

[解決済み] React NativeでiOSのステータスバーの背景色を設定するには?

2023-05-17 09:06:43

質問

iOSのステータスバーのbackgroundColorを設定するために、react nativeのiOSネイティブコードで変更できる箇所はありますか?RCTRootView.m ?

反応ネイティブ ステータスバー コンポーネント のみをサポート 背景色 をAndroidのみサポートします。

iOS では、ステータスバーを設定できるようです。 背景色

私の目標は、ステータスバーの色を濃くすることです。

どのように解決するのですか?

iOS にはステータス バーの bg という概念がありません。ここでは、クロスプラットフォームでこれを実現する方法を説明します。

import React, {
  Component,
} from 'react';
import {
  AppRegistry,
  StyleSheet,
  View,
  StatusBar,
  Platform,
  SafeAreaView
} from 'react-native';

const MyStatusBar = ({backgroundColor, ...props}) => (
  <View style={[styles.statusBar, { backgroundColor }]}>
    <SafeAreaView>
      <StatusBar translucent backgroundColor={backgroundColor} {...props} />
    </SafeAreaView>
  </View>
);

class DarkTheme extends Component {
  render() {
    return (
      <View style={styles.container}>
        <MyStatusBar backgroundColor="#5E8D48" barStyle="light-content" />
        <View style={styles.appBar} />
        <View style={styles.content} />
      </View>
    );
  }
}

const STATUSBAR_HEIGHT = StatusBar.currentHeight;
const APPBAR_HEIGHT = Platform.OS === 'ios' ? 44 : 56;

const styles = StyleSheet.create({
  container: {
    flex: 1,
  },
  statusBar: {
    height: STATUSBAR_HEIGHT,
  },
  appBar: {
    backgroundColor:'#79B45D',
    height: APPBAR_HEIGHT,
  },
  content: {
    flex: 1,
    backgroundColor: '#33373B',
  },
});

AppRegistry.registerComponent('App', () => DarkTheme);