我在一个edge 2 edge显示应用程序上工作时,遇到了一个关于scaffold
的情况,根据official doc,scaffold padding值用于偏移顶部和底部条,如果它们存在。结果发现,当我使用scaffold而不提供top/bottom参数时,scaffold的内容会自动填充在顶部和底部的空白处
如果我为topBar
或bottomBar
提供一个参数,另一个会自动填充空格。
**Catch:**仅当使用WindowCompat.setDecorFitsSystemWindows(window, false)
时才会发生
代码段:
WindowCompat.setDecorFitsSystemWindows(window, false) //commenting this line of code gives desired results but defeates the E2E display
setContent {
TestTheme {
Box(
modifier = Modifier
.fillMaxSize()
.background(Color.Cyan)
) {
Scaffold(
modifier = Modifier
.fillMaxSize(0.8f)
.align(Alignment.Center),
) { paddingValues ->
Box(
modifier = Modifier
.padding(paddingValues)
.fillMaxSize()
.background(Color.White)
) {
Log.d("scaffold", "padding values = $paddingValues")
Text("Android")
}
}
}
}
}
未评论:------评论:
**问:**请问,这种行为的原因是什么,以及我如何才能实现一个工作的E2 E与脚手架不添加不必要的填充?
开发工具:
最新Android Studio(电鳗)
androidx.compose.material3
1条答案
按热度按时间zd287kbt1#
有两个选项:
1.不使用Scaffold的paddingValues
1.将zero contentWindowInsets设置为Scaffold,如下所示:
默认值为
ScaffoldDefaults.contentWindowInsets
,由WindowInsets.systemBars
组成