如何在深色模式下隐藏 Android 标题栏?

How to hide Android title bar in dark mode?

我正在为我的 activity 使用 Theme.MaterialComponents.DayNight.NoActionBar。我的目标是创建一个没有标题栏的 activity 并使通知栏背景与应用程序背景颜色相同。在正常情况下一切正常。但是当我从设备设置中启用深色主题时,标题栏突然出现。我怎样才能去掉两个深色主题的标题栏?

只需转到 Android 清单文件并将 NoActionBar 更改为 NoTitleBar https://www.xspdf.com/resolution/20749671.html

默认在themes文件夹下,会有普通版和夜间版 将两者的父主题更改为 parent="Theme.MaterialComponents.DayNight.NoActionBar" 如下所示

和我这里android:theme="@style/Theme.Advice"> in manifest

这两个主题中的样式名称(同名)

您也可以通过编程方式完成:

this.requestWindowFeature(Window.FEATURE_NO_TITLE)
this.window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

在 oncreate 调用中和 setcontent view 之前添加这个。

如:

 override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        this.requestWindowFeature(Window.FEATURE_NO_TITLE)
        this.window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_main)
    }

不确定为什么还没有提到,但 @android:style/Theme.Black.NoTitleBar 对我来说效果更好。 以防万一有人仍在寻找提供的解决方案以外的其他解决方案。