我想更改我的应用程序的状态栏的颜色,使其为黑色图标的白色(而不是带有白色图标的默认黑色).有没有办法做到这一点?
在Android Studio中,我导入了一个不包含的项目styles.xml (v21).所以我styles-v21.xml在values目录中创建了一个文件.双方styles.xml并styles-v21.xml都在values目录现在.
styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="AppTheme.Base">
<!-- Customize your theme here. -->
</style>
<style name="AppTheme.Base" parent="Theme.AppCompat.Light">
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
款式 - v21.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar">
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
当我构建项目时,我得到一个构建错误:
错误:错误:资源重复:C:\ xxx\main\res\values\styles-v21.xml:style/AppTheme,C:\ xxx\main\res\values\styles.xml:style/AppTheme
错误是两个资源文件具有相同的style名称:AppTheme.但在我看过的其他项目和教程中,这些styles都有相同的名称.一个用于Android,兼容版本21,另一个用于Android,没有兼容性.
我想我想知道我是否应该简单地更改名称或者这些文件是否应该具有相同的名称 - 这意味着手头有更大的问题.我该怎么办?
我正在尝试将状态栏的颜色更改为带有灰色图标的白色.我已经为这个问题尝试了几乎所有的代码解决方案,但是没有为我工作.
我正在使用这个java fucntion来改变它,我也发布了我的样式(21)代码.
public static void statusBarColor(Window window, Context ctx) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
//Window window = getActivity().getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(ctx.getResources().getColor(R.color.statusbar_color));
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的java代码,但它在千万次尝试后无法正常工作.以下是我的style.xml(21)
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowLightStatusBar" tools:targetApi="23">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)
如果你认为它的一些其他问题的副本,那么我现在应该让你尝试3,4页谷歌搜索并实施它们.
android statusbar android-layout android-view material-design