Ben*_*Tec 108 android android-jetpack-compose jetpack-compose-navigation
我最近开始使用 Jetpack Compose。我有以下可组合项:
@Composable
fun SearchScreen(navController: NavHostController) {
Scaffold(
topBar = { SearchBar() },
content = {
Column (
modifier = Modifier.fillMaxSize()
) {
// some nested Composables
}
}
)
}
Run Code Online (Sandbox Code Playgroud)
但按原样使用此代码,其中的整个代码content = {...}都用红色下划线表示Jetpack Compose: Content padding parameter it is not used。我已经在这篇Stackoverflow 帖子中读到,实际上,PaddingValues只有在设置了 的情况下才在脚手架中提供bottomBar,这显然不是这里的情况。所以我不明白为什么我会收到这个错误。
注意:该应用程序实际上确实使用了 a BottomNavigation,但不在Composable我上面显示的范围内。难道这仍然以某种方式在这里传播吗?
Phi*_*hov 224
需要使用填充参数,传递到Scaffold content可组合项中。您应该将其应用到最顶层的容器/视图content:
content = { padding ->
Column(
modifier = Modifier
.padding(padding)
// ...
Run Code Online (Sandbox Code Playgroud)
这样做是为了防止布局问题,例如,当脚手架有底部栏时,如果不使用此填充,视图的部分将位于底部栏下方。
您始终可以使用 来抑制它@SuppressLint("UnusedMaterialScaffoldPaddingParameter"),但我建议仅当您确切知道自己在做什么时才这样做。
小智 11
我在 alpha 版本中看到了一个错误,并且我正在使用 SmallTopAppBar() Scaffold 没有为两个可组合项提供填充,这两个可组合项彼此重叠。更新后,刚刚意识到错误已修复,并且 Scaffold 本身有一个填充,因此可组合项不再位于其他项之上。
用法:
Scaffold(topBar = { AppBar() }) { paddingValues ->
AnyComposable(modifier = Modifier.padding(paddingValues)){
}
Run Code Online (Sandbox Code Playgroud)
小智 9
添加it关键字:
Scaffold(
topBar = { SearchBar() },
content = { it
Column(modifier = Modifier
.fillMaxSize()
.verticalScroll(rememberScrollState()))
Run Code Online (Sandbox Code Playgroud)
这应该有效。
| 归档时间: |
|
| 查看次数: |
32794 次 |
| 最近记录: |