kotlin AndroidX的边缘到边缘显示一个动作栏-如何隐藏它?

eulz3vhy  于 2023-10-23  发布在  Kotlin
关注(0)|答案(1)|浏览(141)

我已经在我的Android应用程序中实现了Edge to Edge,我已经将状态/导航栏设置为透明的,它工作得很好。然而,突然一个ActionBar出现在我的屏幕上,尽管我已经将应用程序主题设置为"android:Theme.Material.Light.NoActionBar"。我该怎么弥补?

主活动:

override fun onCreate(savedInstanceState: Bundle?) {
        enableEdgeToEdge(
            statusBarStyle = SystemBarStyle.light(
                Color.TRANSPARENT, Color.TRANSPARENT
            ),
            navigationBarStyle = SystemBarStyle.light(
                Color.TRANSPARENT, Color.TRANSPARENT
            )
        )
        super.onCreate(savedInstanceState)
    }

根组合:

...
val view = LocalView.current
if (!view.isInEditMode) {
    SideEffect {
        val window = (view.context as Activity).window
        window.statusBarColor = Color.Transparent.toArgb()
        WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !darkTheme
    }
}
...

主题.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.TestApp" parent="android:Theme.Material.Light.NoActionBar" />
</resources>
shstlldc

shstlldc1#

你在代码中使用了SplashScreen API吗?如果您使用过此API,在AndroidManifest.xml文件中,当启动Activity的主题设置在位置2时,会显示提示栏。然而,根据官方指南,这两种方法预计会产生相同的效果。令人费解的是,将其放置在2会显示“显示栏”,而1则不会。

相关问题