我正在尝试为棒棒糖更改状态栏颜色。我相信这是通过提供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>
答案 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>
输出:
答案 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文件中定义此颜色。
我相信这会解决您的问题。