Adi*_*fyr 40 android statusbar android-appcompat android-studio android-5.0-lollipop
我AppCompat-v7:21.0.0在Android Studio中使用Android 5.0 Lollipop 的支持库.我的问题是,可以通过设置来改变状态栏的颜色colorPrimaryDark中values/styles.xml的文件,则显示为黑色,在XML布局预览和模拟器中.
那有什么不对?我错过了什么吗?请告诉我.谢谢.
编辑: 我知道在Pre-Lollipop版本上更改状态栏颜色是不可能的.我的XML Layout Editor Preview和my Emulator都设置为API Level 21(5.0 Lollipop).但是,状态栏仍然不是我设置的颜色colorPrimaryDark.我想这样做statusBarColor的styles.xml,但无济于事.它仍然是黑色的.
另外: 我在一个类似的问题上看到了一个答案,他们建议我把它放到minSdkVersion21号.我试过了,但是没有用.我希望我的应用程序在API级别15及以上的设备上运行.
Way*_*yne 35
请阅读:要使此操作生效,窗口必须绘制系统栏背景
android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
Run Code Online (Sandbox Code Playgroud)
但
android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
Run Code Online (Sandbox Code Playgroud)
不得设置(来源)
如果您不知道如何添加该标志:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
Run Code Online (Sandbox Code Playgroud)
Phi*_* E. 35
这对我有用:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
getWindow().setStatusBarColor(getResources().getColor(R.color.some_color));
}
Run Code Online (Sandbox Code Playgroud)
Bla*_*der 12
您是否将目标SDK版本设置为21?当我将目标SDK版本保留为19时,我遇到了同样的问题.您可以将最小的SDK保留为更低的值.
当然,您需要从正确的主题继承并确保您的Activity使用它.
检查您是否styles.xml在values-v21文件夹中进行编辑.如果您将SDK版本设置为21,那么它将不会styles.xml在values文件夹中查找(但它应该这样做).

测试我的nexus7 5.1.1
在style.xml v21/v22中设置不起作用
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/holo_red_dark</item>
Run Code Online (Sandbox Code Playgroud)
但
设定为活力
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
getWindow().setStatusBarColor(getResources().getColor(android.R.color.holo_red_dark));
}
Run Code Online (Sandbox Code Playgroud)
对我有用
| 归档时间: |
|
| 查看次数: |
36440 次 |
| 最近记录: |