android - 在 Android 中更改状态栏颜色

标签 android xml colors statusbar

我正在构建一个 Android 应用程序,现在我想更改状态栏(屏幕顶部显示无线和区域信号、电池状态等的状态栏),但它不起作用。

在 XML 文件的预览中,它为栏显示了不同的颜色(我想使用的橙色阴影),但是当我在模拟器和手机上运行应用程序时,颜色保持白色。

我隐藏了操作栏并在应用顶部放置了一个灰色图像。

这是 Android Studio 中 XML 文件的预览

This is the preview in Android Studio for the XML file

这是应用程序的仿真:

Emulation of the app

这是我的 colors.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="theme_color">#D8540D</color>
    <color name="toolbar_title_color">#E66800</color>
    <color name="grey">#d3d3d3</color>
    <color name="maroon">#7f0000</color>
    <color name="color_textual">#8D5020</color>
    <color name="chef_bg_color">#F7F7F7</color>
    <color name="line_color">#dddddd</color>

</resources>

这是我的 styles.xml:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>

        <item name="android:statusBarColor">@color/theme_color</item>
        <item name="android:navigationBarColor">@color/theme_color</item>
        <item name="android:colorEdgeEffect">@color/theme_color</item>
    </style>

    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

</resources>

Android list :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.mvaguimaraes.bt">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainScreen"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">

        </activity>

        <activity android:name=".OrderDetails"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">

        </activity>

        <activity android:name=".PastOrderDetails"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">

        </activity>
    </application>

</manifest>

最佳答案

在您将主题指定为 NoActionBar 的所有 Activity 的 list 文件中。

但是在 NoActionBar 主题中的 styles.xml 中,您还没有添加以下代码行:

<item name="android:statusBarColor">@color/theme_color</item>

NoActionBar 主题样式中添加上面一行代码,然后您的状态栏的颜色肯定会改变。

但是是的,它适用于 api 级别 21 及更高级别。

关于android - 在 Android 中更改状态栏颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37197235/

相关文章:

java - assets 子文件夹中包含的 android 列表文件

Android studio 启动失败 :Fatal error initializing 'com. intellij.util.net.ssl.CertificateManager

java - RecyclerView 中的 Android Spinner 选中时获取当前 View

python - 如何使用 PIL 减少调色板

c++ - OpenCV - 在 cvtColor 之后使用 ROI

java - Volley - 使用 JSONArrayRequest 发送 POST 请求

android - 通过 ADB 连接到 Docker 容器中的 USB Android 设备

xml - 根据内容选择子节点

python - 使用 ElementTree 解析任意 XML 文件

python-3.x - 如何使用 Python 3 打印彩色输出?