当前位置: 首页 > 知识库问答 >
问题:

当primaryDark为白色时更改状态栏文本颜色

皇甫文乐
2023-03-14

但是我没有找到更改状态文本颜色的方法。如果我将颜色Primary深色设置为白色,我看不到状态栏文本的图标,因为它们的颜色也是白色的。

有什么办法可以更改状态栏文字颜色吗?

共有3个答案

柳威
2023-03-14

compat版本适用于API 23。

在这里:

// deprecated
// WindowInsetsControllerCompat(window, view).isAppearanceLightStatusBars = Boolean
// also deprecated
// ViewCompat.getWindowInsetsController(view)?.isAppearanceLightStatusBars = Boolean
WindowCompat.getInsetsController(window, decorView)?.isAppearanceLightStatusBars = Boolean

您可以直接从Activity获取窗口

我喜欢将其添加到Window扩展方法中:

fun Window.setLightStatusBars(b: Boolean) {
    WindowCompat.getInsetsController(this, decorView)?.isAppearanceLightStatusBars = b
}

为此,您需要< code>androidx.core

屠德宇
2023-03-14

你可以像这样通过编程来实现

只需添加此

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
姜泰宁
2023-03-14

我不确定你的目标是什么API级别,但是如果你可以使用API 23特定的东西,你可以将以下内容添加到你的AppTheme styles.xml中:

<item name="android:statusBarColor">@color/colorPrimaryDark</item>
<item name="android:windowLightStatusBar">true</item>

当< code > Android:windowLightStatusBar 设置为true时,状态栏文本颜色将在状态栏颜色为白色时可见,反之亦然;当< code > Android:windowLightStatusBar 设置为false时,状态栏文本颜色将设计为在状态栏颜色为深色时可见。

例:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <!-- Status bar stuff. -->
    <item name="android:statusBarColor">@color/colorPrimaryDark</item>
    <item name="android:windowLightStatusBar">true</item> 
</style>
 类似资料:
  • 我已经改变了我的应用程序的状态栏颜色为白色后,这个状态栏图标是不可见的。

  • 如果你认为它重复了一些其他的问题,那么我应该让你现在我已经尝试了3,4页的谷歌搜索,也实现了他们。

  • 我正在为我工作的一所学校开发一个应用程序。目前,我有问题改变状态栏文本从它的默认状态黑色到白色,以便我们可以实际阅读它! 我已经尝试了在这里和开发论坛上找到的所有东西,包括调用和

  • 问题内容: 我正在尝试将状态栏的颜色更改为蓝色或其他某种颜色。 这可能吗,或者Apple不允许吗? 问题答案: 注意:此解决方案在iOS 13及更高版本下失败。 Plist中的第一个设置为 输出屏幕截图如下

  • 问题内容: 我的应用程序具有深色背景,但是在iOS 7中状态栏变为透明的。所以我看不到任何东西,只有角落的绿色电池指示灯。如何将状态栏文本颜色更改为白色,就像在主屏幕上一样? 问题答案: 将要在文件的.plist。 在做一个 添加以下方法: { return UIStatusBarStyleLightContent; } 注意 :这不适用于内部控制器,请参阅下面的Tyson评论:) Swift 3

  • 我对这一切都不熟悉。我到处寻找这个小问题的解决办法。有没有办法改变状态栏的颜色?当我使用a色的时候,我也喜欢a色。蓝色我可以看到状态栏中的文本质量不好。 谢谢