【问题标题】:React Native- Android status bar text color not changingReact Native-Android状态栏文本颜色不变
【发布时间】:2022-08-19 16:48:05
【问题描述】:

我正在尝试更改状态栏文本颜色。在应用程序中,我创建了一个如下图所示的简单屏幕。虽然它在 iOS 上运行良好,但我无法在 Android 上更改文本颜色。还有什么其他东西可以阻止Android吗?由于我后来参与了该项目,因此本机方面的某些东西可能会阻止这种情况。有没有其他方法可以为android做到这一点?我想要做的就是使状态栏文本颜色为 android 的黑色。

import React, { useState } from \'react\';
import { Button, SafeAreaView, StatusBar, StyleSheet, Text, View } from \'react-native\';

const STYLES = [\'default\', \'dark-content\', \'light-content\'];

export default function SignUp({ navigation }) {
  const [statusBarStyle, setStatusBarStyle] = useState(STYLES[0]);

  const changeStatusBarStyle = () => {
    const styleId = STYLES.indexOf(statusBarStyle) + 1;
    if (styleId === STYLES.length) {
      setStatusBarStyle(STYLES[0]);
    } else {
      setStatusBarStyle(STYLES[styleId]);
    }
  };

  return (
    <SafeAreaView style={styles.container}>
      <StatusBar
        backgroundColor=\"#61dafb\"
        barStyle={statusBarStyle}
      />

      <Text style={styles.textStyle}>
        StatusBar Style:{\'\\n\'}
        {statusBarStyle}
      </Text>

      <View style={styles.buttonsContainer}>
        <Button
          title=\"Change StatusBar Style\"
          onPress={changeStatusBarStyle} />

      </View>
    </SafeAreaView>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: \'center\',
    backgroundColor: \'#ECF0F1\'
  },
  buttonsContainer: {
    padding: 10
  },
  textStyle: {
    textAlign: \'center\',
    marginBottom: 8
  }
});

颜色.xml

<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>
<resources>
  <color name=\"colorPrimary\">#023c69</color>
  <color name=\"colorPrimaryDark\">#ffffff</color>
</resources>

样式.xml

<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>
<resources xmlns:tools=\"http://schemas.android.com/tools\">
  <style name=\"AppTheme\" parent=\"Theme.AppCompat.Light.NoActionBar\">
    <item name=\"android:textColor\">@android:color/black</item>
    <item name=\"android:editTextStyle\">@style/ResetEditText</item>
    <item name=\"colorPrimary\">@color/colorPrimary</item>
    <item name=\"colorPrimaryDark\">@color/colorPrimaryDark</item>
    <item name=\"android:forceDarkAllowed\">false</item>
  </style>
  <style name=\"ResetEditText\" parent=\"@android:style/Widget.EditText\">
    <item name=\"android:padding\">0dp</item>
    <item name=\"android:textColorHint\">#c8c8c8</item>
    <item name=\"android:textColor\">@android:color/black</item>
  </style>
  <style name=\"Theme.App.SplashScreen\" parent=\"AppTheme\">
    <item name=\"android:windowBackground\">@drawable/splashscreen</item>
  </style>
</resources>

    标签: javascript java android react-native


    【解决方案1】:

    面临同样的问题,你能解决这个问题吗?

    【讨论】:

    猜你喜欢
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 2018-07-05
    • 2017-03-05
    • 2019-03-10
    • 2015-12-21
    相关资源
    最近更新 更多