在我使用 Jetpack Compose 的 Android 应用程序中,我需要实现设计,其中 app:
使用这个主题:
<style name="Theme.Launcher" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="android:windowBackground">@color/background</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
以及
MainActivity.kt
中的代码:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// This will allows app to draw under OS status bar
WindowCompat.setDecorFitsSystemWindows(window, false)
setContent {
// rest of the compose code
}
}
}
使用时
NavGraphBuilder
开启:
composable
扩展屏幕,输出占据整个空白空间,正如预期的那样;dialog
屏幕上有 DialogProperties( usePlatformDefaultWidth = false)
扩展,有一些 垂直边距 并且下面的屏幕清晰可见。使用 Jetpack 编写 BOM
2023.06.01
和 androidx.navigation:navigation-compose:2.7.0
。
enableEdgeToEdge()
或 EdgeToEdgeUtils.applyEdgeToEdge(window, true)
,但输出是相似的。
Android SDK 28、31、模拟器以及真实设备上的输出相同。
感谢您了解如何正确设置此功能,因此
dialog
也可以提供正确的视觉输出,如screen
。
最简单的方法是使用伴奏者
val systemUiController = rememberSystemUiController()
systemUiController.isStatusBarVisible = false