android 不使用内容填充参数

ngynwnxp  于 2023-03-28  发布在  Android
关注(0)|答案(4)|浏览(151)

我最近开始使用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。我已经在this Stackoverflow Post中读到过,实际上,如果设置了bottomBarPaddingValues只在脚手架中提供,显然不是这里的情况。所以我不明白为什么我会得到这个错误。
注意:应用程序实际上使用了BottomNavigation,但不在我上面展示的Composable中。这是否仍然以某种方式传播到这里?

3lxsmp7m

3lxsmp7m1#

自Compose1.2.0起,需要使用padding参数,传入Scaffoldcontent composable中。您应该将其应用于content中最顶层的容器/视图:

content = { padding ->
    Column(
        modifier = Modifier
            .padding(padding)
    // ...

这样做是为了防止布局问题,例如,当脚手架有一个底部酒吧,没有使用此填充部分,您的看法将在酒吧。
您总是可以使用@SuppressLint("UnusedMaterialScaffoldPaddingParameter")来抑制它,但是我建议只有在您确切地知道自己在做什么的情况下才这样做。

hgc7kmma

hgc7kmma2#

我在alpha版本中看到了一个错误,我使用SmallTopAppBar()Scaffold没有为两个组合对象提供填充,这两个组合对象是在彼此之上的。更新后,刚刚意识到这个错误得到了修复,Scaffold本身有一个填充,所以组合对象不再在彼此之上。
使用方法:

Scaffold(topBar = { AppBar() }) { paddingValues ->
  AnyComposable(modifier = Modifier.padding(paddingValues)){

  }
qcuzuvrc

qcuzuvrc3#

添加it关键字:

Scaffold(
        topBar = { SearchBar() },
        content = { it
            Column(modifier = Modifier
                .fillMaxSize()
                .verticalScroll(rememberScrollState()))

这应该行得通。

svujldwt

svujldwt4#

app build.gradle add this:

buildFeatures {
    compose = true
    kotlinOptions.freeCompilerArgs += "-Xopt-in=androidx.compose.material.ExperimentalMaterialApi"
    kotlinOptions.freeCompilerArgs += "-Xopt-in=androidx.compose.foundation.ExperimentalFoundationApi"
    kotlinOptions.freeCompilerArgs += "-Xopt-in=androidx.compose.ui.ExperimentalComposeUiApi"
    kotlinOptions.freeCompilerArgs += "-Xopt-in=androidx.compose.animation.ExperimentalAnimationApi"
    kotlinOptions.freeCompilerArgs += "-Xopt-in=androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi"
    kotlinOptions.freeCompilerArgs += "-Xopt-in=kotlinx.serialization.ExperimentalSerializationApi"
    kotlinOptions.freeCompilerArgs += "-Xopt-in=com.google.accompanist.navigation.material.ExperimentalMaterialNavigationApi"
}

相关问题