首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不使用的内容填充参数

不使用的内容填充参数
EN

Stack Overflow用户
提问于 2022-05-02 09:36:44
回答 2查看 8.5K关注 0票数 42

我最近开始从事Jetpack的写作工作。我有以下可合成的内容:

代码语言:javascript
运行
复制
@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”下划线。我已经在this Stackoverflow中读到,实际上,PaddingValues只在设置了bottomBar的情况下才在Scaffold中提供,这里显然不是这样的。所以我不明白为什么我会犯这个错误。

注意:这个应用程序确实使用了BottomNavigation,但不在我上面展示的Composable中。难道这还在这里传播吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-05-02 10:08:57

因为Compose 1.2.0需要使用填充参数,然后传递给Scaffold content可组合。您应该将其应用于content中最顶层的容器/视图。

代码语言:javascript
运行
复制
content = { padding ->
    Column(
        modifier = Modifier
            .padding(padding)
    // ...

这是为了防止布局问题,例如,当脚手架有一个底部栏,而不使用此填充部分的视图将在栏下。

您可以始终使用@SuppressLint("UnusedMaterialScaffoldPaddingParameter")来抑制它,但是只有当您确切地知道您正在做什么时,我才建议您这样做。

票数 110
EN

Stack Overflow用户

发布于 2022-05-17 08:36:31

我在alpha版本中看到了一个bug,而且我使用的是SmallTopAppBar(),Scaffold没有为两个可组合的相互之间提供填充。更新后,刚刚意识到bug的修复和Scaffold本身有一个填充,所以可组合不再是在rach的其他之上。

用法:

代码语言:javascript
运行
复制
  Scaffold(topBar = { AppBar() }) { paddingValues ->
  AnyComposable(modifier = Modifier.padding(paddingValues)){

  }
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72084865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档