状态栏不改变棒棒糖的颜色

时间:2015-07-18 02:20:38

标签: android

我正在尝试为棒棒糖更改状态栏颜色。我相信这是通过提供XML格式自动发生的

<item name="colorPrimaryDark">@color/colorPrimaryDark</item>

但是我的Nexus 5没有发生这种情况?我不确定会出现什么问题?

有人可以帮我吗?

这是v21的Style.xml文件:

<style name="Theme.default" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="md_widget_color">@color/bluetext</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="android:windowContentOverlay">@drawable/toolbar_dropshadow</item>
        <item name="android:windowBackground">@android:color/white</item>
        <item name="android:editTextColor">@android:color/background_dark</item>
        <item name="android:textColor">@android:color/background_dark</item>
        <item name="colorControlNormal">@android:color/background_dark</item>
        <item name="colorControlActivated">@color/orangeText</item>
        <item name="colorControlHighlight">@color/numbertext</item>

    </style>

的Manifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ylg.defaultApp"
    android:versionCode="1"
    android:versionName="1.1" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="20" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.READ_PROFILE" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.default" >

        <activity
            android:name=".Ylg_default"
            android:excludeFromRecents="true"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="adjustPan|adjustResize" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>

4 个答案:

答案 0 :(得分:0)

尝试这种方式:

<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="cp">@color/color_primary</item>
    <item name="cpd">@color/color_secondary</item>
    <item name="ca">@color/color_accent</item>
    <item name="android:statusBarColor">@color/color_primary</item>
</style>
</resources>

输出:

enter image description here

答案 1 :(得分:0)

只需替换为

<item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>

希望有所帮助

答案 2 :(得分:0)

actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#D11C1C")));

如需完整的保密,您可以点击此链接。 http://www.7solutions.in/2015/07/making-of-custom-action-bar-status-bar.html#more

答案 3 :(得分:0)

你犯了一个小错误。我会指出它,并且还会提到所有可能的方法。

1)使用styles.xml。您可以使用android:statusBarColor属性以简单但静态的方式执行此操作。

注意:您也可以将此属性与材质主题一起使用。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="AppTheme" parent="AppTheme.Base">
        <item name="android:statusBarColor">@android:color/transparent</item>
    </style>
</resources>

2)您可以使用setStatusBarColor(int)类中的Window方法动态完成此操作。但请记住,此方法仅适用于API 21或更高版本。所以一定要检查一下,否则你的应用肯定会在较低的设备中崩溃。

以下是此方法的一个工作示例。

if (Build.VERSION.SDK_INT >= 21) {
            Window window = getWindow();
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            window.setStatusBarColor(getResources().getColor(R.color.primaryDark));
}

其中,primaryDark是我在我的应用中使用的700色原色。您可以在colors.xml文件中定义此颜色。

我相信这会解决您的问题。