我在我的应用程序中设置了两个主题应用主题
在我的应用主题状态栏是显示正确的,但当我设置DarkThem它改变状态栏颜色,但字体颜色没有改变,我想改变我的状态栏字体颜色白色在DarkTh的。
当我在活动中使用片段时,就像在主活动中使用主片段一样,当时我的状态栏颜色不是白色
当我使用“仅活动”时,它会在状态栏中以白色字体颜色显示相同主题的正确结果。
Style.xml
<style name="DarkTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimaryD</item>
<item name="colorPrimaryDark">@color/color_82828C</item>
<item name="colorAccent">@color/color_f85200</item>
<item name="color_background">@color/color_background_night_light_black</item>
<item name="color_background_d">@color/color_background_night_dark_black</item>
<item name="color_icon">@color/color_icon_ffffff</item>
<item name="color_black_white">@color/colorWhite</item>
<item name="color_catlist_bg">@color/color_background_night_dark_black</item>
<item name="color_icon_border">@color/color_icon_border_night</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="colorControlHighlight">@color/ripple_colorD</item>
<item name="android:windowDisablePreview">true</item>
</style>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="color_background">@color/color_background_day</item>
<item name="color_background_d">@color/colorWhite</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/color_f85200</item>
<item name="color_icon">@color/color_icon_3b3b3b</item>
<item name="color_black_white">@color/colorBlack</item>
<item name="color_catlist_bg">@color/colorWhite</item>
<item name="color_icon_border">@color/color_icon_border_day</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="colorControlHighlight">@color/ripple_color</item>
<item name="android:windowDisablePreview">true</item>
</style>
1) Apptheme状态栏是正确的
2)深色主题状态条字体颜色为黑色,我想要白色字体
我Alredy应用了许多解决方案,但在我的情况下无效
HomeActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.DarkTheme);
setContentView(R.layout.activity_home);
}
带有片段的活动问题,没有片段状态栏字体颜色白色工作。
如果有人有任何解决方案,那么给我一个建议,如果在我的情况下,它的工作,我也正确标记的答案。
提前感谢。
注意:在API级别21以下不支持状态栏着色。
对于API 21及以上21
你可以通过设置android: statusBar颜色或android:颜色Primary黑暗的样式属性,你正在使用你的应用程序在styles.xml.
(android:statusBarColor默认继承android:colorPrimaryDark的值)
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimaryDark">@color/your_custom_color</item>
</style>
在 API 级别 21 上,您还可以从代码中使用 Window.setStatusBarColor() 方法。
// getWindow() is a method of Activity
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
希望这有什么帮助。
我强烈建议您检查一下以实现完美的组合浅色/深色主题。谷歌本身有一个完整的例子。
我不知道为什么要在主题之间切换,因为我们可以使用<code>夜间/颜色,所以现在不再需要DarkTheme风格。xml和night/styles.xml
。在这两种情况下,您都可以覆盖灯光主题的资源。过来看。
如果您更改状态栏字体颜色为白色,请使用此功能,
对于爪哇,
public static void setLightStatusBar(Activity activity){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int flags = activity.getWindow().getDecorView().getSystemUiVisibility();
flags |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
activity.getWindow().getDecorView().setSystemUiVisibility(flags);
}
}
对于 kotlin,请使用此扩展函数,
fun Activity.setLightStatusBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
var flags = window.decorView.systemUiVisibility
flags =
flags and View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR.inv()
window.decorView.systemUiVisibility = flags
}
}
如果您想清除灯光状态栏并恢复到以前的状态,请使用此功能,
对于爪哇,
public static void clearLightStatusBar(Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Window window = activity.getWindow();
window.setStatusBarColor(ContextCompat
.getColor(activity, R.color.colorPrimaryDark));
}
}
对于Kotlin,
fun Activity.clearLightStatusBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
window.statusBarColor = ContextCompat
.getColor(this, R.color.colorPrimaryDark)
}
}
有没有办法在暗色主题的PWA状态栏上设置白色背景? 在index.html中,我放置了元标记:
我试图在我的应用中使用材料设计,为了使用浮动操作按钮,我使用了appcompat-v7库。但是,为了使用这个,我必须使用主题:“theme.appcompat.light”。我只是不能为API22设置应用程序的背景色。我对在API的20或贝娄上工作不感兴趣 我的主要活动:
本文向大家介绍Android系统更改状态栏字体颜色,包括了Android系统更改状态栏字体颜色的使用技巧和注意事项,需要的朋友参考一下 随着时代的发展,Android的状态栏都不是乌黑一片了,在Android4.4之后我们可以修改状态栏的颜色或者让我们自己的View延伸到状态栏下面。我们可以进行更多的定制化了,然而有的时候我们使用的是淡色的颜色比如白色,由于状态栏上面的文字为白色,这样的话状态栏上
如果你认为它重复了一些其他的问题,那么我应该让你现在我已经尝试了3,4页的谷歌搜索,也实现了他们。
我正在开发一个简单的应用程序来测试材料设计。我正在使用,我的活动如下所示: 布局定义为: 我想改变Android5前的状态栏颜色,并将其设置为,但我找不到方法。我试着用: 但是setStatusBar颜色可以从第21级开始使用。为什么如果我在主题中定义并使用appcompact,状态栏不会改变颜色?有人能帮忙吗?
状态栏文字颜色 sdk状态栏文字的颜色可以设置为白色或者黑色 , 设置方法如下: /** @param isDark true为黑字模式, false为白色模式 */ Ntalker.getInstance().statusBarDarkMode(boolean isDark);