但我还没有找到改变状态文本颜色的方法。如果我将 colorPrimaryDark 设置为白色,我看不到图标,也看不到状态栏的文本,因为它们的颜色也是白色的。
有什么办法可以改变状态栏的文字颜色吗?
原文由 MarcForn 发布,翻译遵循 CC BY-SA 4.0 许可协议
但我还没有找到改变状态文本颜色的方法。如果我将 colorPrimaryDark 设置为白色,我看不到图标,也看不到状态栏的文本,因为它们的颜色也是白色的。
有什么办法可以改变状态栏的文字颜色吗?
原文由 MarcForn 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 API 21+,这对我有用:
WindowInsetsControllerCompat windowInsetsController =
WindowCompat.getInsetsController(getWindow(), getWindow().getDecorView());
windowInsetsController.setAppearanceLightStatusBars(true);
我用
Theme.AppCompat.DayNight
此代码适用于白天和夜间模式:
getWindow().setStatusBarColor(getWindow().getNavigationBarColor());
WindowInsetsControllerCompat windowInsetsController =
WindowCompat.getInsetsController(getWindow(), getWindow().getDecorView());
if ((getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_NO)
windowInsetsController.setAppearanceLightStatusBars(true);
else
windowInsetsController.setAppearanceLightStatusBars(false);
原文由 Cor 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答1.3k 阅读✓ 已解决
2 回答2.6k 阅读
2 回答1.7k 阅读
1 回答2.1k 阅读
1 回答1.1k 阅读
1 回答1.3k 阅读
1.3k 阅读
我不确定您尝试针对哪个 API 级别,但如果您可以使用 API 23 特定的东西,您可以将以下内容添加到您的 AppTheme styles.xml:
当
android:windowLightStatusBar
设置为 true 时,状态栏颜色为白色时可以看到状态栏文本颜色,反之亦然,当android:windowLightStatusBar
设置为 false 时,状态栏文本颜色将设计为在状态栏颜色较暗时可见。例子: