不使用内容填充参数
Content padding parameter it is not used
我最近开始使用 Jetpack Compose。我有以下可组合项:
@Composable
fun SearchScreen(navController: NavHostController) {
Scaffold(
topBar = { SearchBar() },
content = {
Column(modifier = Modifier
.fillMaxSize()
.verticalScroll(rememberScrollState())) {
Text(stringResource(id = R.string.genreFilter))
Row(
modifier = Modifier
.horizontalScroll(rememberScrollState()),
horizontalArrangement = Arrangement.spacedBy(4.dp)
) {
// some nested Composables
}
}},
)
}
但是按原样使用此代码,content = {...}
中的整个代码都用红色下划线表示 Jetpack Compose: Content padding parameter it is not used
。我已经在 Whosebug Post 中读到,实际上,如果设置了 bottomBar
,PaddingValues
只会在脚手架中提供,这显然不是这里的情况。所以我不明白为什么会出现此错误。
注意:该应用程序实际上确实使用了 BottomNavigation
,但不在我上面显示的 Composable
之内。难不成这还在这儿流传?
自从 Compose 1.2.0(目前处于 alpha 阶段)以来,它需要使用填充参数,传递给 Scaffold
content
可组合。您应该将其应用于 content
:
中最顶层的容器或其他视图
content = { padding ->
Column(
modifier = Modifier
.padding(padding)
// ...
这样做是为了防止布局问题,例如,当脚手架有底栏时,如果不使用此填充,您的视图部分将位于栏下方。
您始终可以使用 @SuppressLint("UnusedMaterialScaffoldPaddingParameter")
来抑制它,但我建议您仅在确切知道自己在做什么时才这样做。
我在 alpha 版本中发现了一个错误,我正在使用 SmallTopAppBar()
脚手架没有为彼此重叠的两个可组合项提供填充。
更新后,才意识到错误已修复,并且 Scaffold 本身有一个填充,因此可组合项不再位于 rach other 之上。
用法:
Scaffold(topBar = { AppBar() }) { paddingValues ->
AnyComposable(modifier = Modifier.padding(paddingValues)){
}
我最近开始使用 Jetpack Compose。我有以下可组合项:
@Composable
fun SearchScreen(navController: NavHostController) {
Scaffold(
topBar = { SearchBar() },
content = {
Column(modifier = Modifier
.fillMaxSize()
.verticalScroll(rememberScrollState())) {
Text(stringResource(id = R.string.genreFilter))
Row(
modifier = Modifier
.horizontalScroll(rememberScrollState()),
horizontalArrangement = Arrangement.spacedBy(4.dp)
) {
// some nested Composables
}
}},
)
}
但是按原样使用此代码,content = {...}
中的整个代码都用红色下划线表示 Jetpack Compose: Content padding parameter it is not used
。我已经在 bottomBar
,PaddingValues
只会在脚手架中提供,这显然不是这里的情况。所以我不明白为什么会出现此错误。
注意:该应用程序实际上确实使用了 BottomNavigation
,但不在我上面显示的 Composable
之内。难不成这还在这儿流传?
自从 Compose 1.2.0(目前处于 alpha 阶段)以来,它需要使用填充参数,传递给 Scaffold
content
可组合。您应该将其应用于 content
:
content = { padding ->
Column(
modifier = Modifier
.padding(padding)
// ...
这样做是为了防止布局问题,例如,当脚手架有底栏时,如果不使用此填充,您的视图部分将位于栏下方。
您始终可以使用 @SuppressLint("UnusedMaterialScaffoldPaddingParameter")
来抑制它,但我建议您仅在确切知道自己在做什么时才这样做。
我在 alpha 版本中发现了一个错误,我正在使用 SmallTopAppBar() 脚手架没有为彼此重叠的两个可组合项提供填充。 更新后,才意识到错误已修复,并且 Scaffold 本身有一个填充,因此可组合项不再位于 rach other 之上。
用法:
Scaffold(topBar = { AppBar() }) { paddingValues ->
AnyComposable(modifier = Modifier.padding(paddingValues)){
}