Jetpack Compose 第一个参数修饰符不起作用

Posted

技术标签:

【中文标题】Jetpack Compose 第一个参数修饰符不起作用【英文标题】:Jetpack Compose first argument modifier doesn't work 【发布时间】:2021-10-13 04:39:44 【问题描述】:

我正在学习 Compose,我只是想为我的 LazyColumn 设置我的项目样式。但是,当我添加第一个参数时,它似乎总是拒绝它。即使我删除了填充,下一个参数也会出错。

谁能看到我遗漏的东西,因为我已经看了一个小时了。

@Composable
fun NewsArticleItem(news: News) 
    Row 
        Column(
            modifier = Modifier
                .padding(16.dp)
                .background(Color.Green)
                .fillMaxWidth()
                .align(Alignment.CenterVertically)
        ) 
            Text(text = news.title, style = typography.h5)
            Text(text = news.body, style = typography.caption)
        
    

【问题讨论】:

错误信息是什么? 感觉还可以。你用的是最新版的 android Studio、gradle 和 compose 吗? 【参考方案1】:

你不能将dp 传递给.fillMaxWidth() 你可以在那里传递0..1 Float,这将使它占据可用宽度的一部分,默认为1

您可以将dp 指定为.width(56.dp) 修饰符

如果这没有帮助,请指定哪个修饰符在您的情况下完全不起作用?在我的情况下,宽度固定 width 修饰符一切似乎都按预期工作

【讨论】:

请原谅。我更新了代码以更好地反映正在发生的事情。我粘贴了错误的代码。这是填充属性。 让我说清楚;这是 Android Studio 中以红色显示的填充,我不知道为什么。 @Nefario 在我的情况下很好。确定你有正确的进口? import androidx.compose.foundation.layout.padding 是的,但由于某种原因它是灰色的。我用的是北极狐,有问题吗? @Nefario 当然,这意味着它在您的代码中使用了其他一些padding。检查你的导入,看看是否有另一个以padding 结尾,或者尝试导航到你的padding 源代码,看看它是哪一个

以上是关于Jetpack Compose 第一个参数修饰符不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Jetpack Compose之手势使用

onKeyEvent 修饰符在 Jetpack Compose 中不起作用

使用可点击修饰符时 Jetpack compose 编译错误

Jetpack Compose 从入门到入门

Jetpack Compose 从入门到入门

如何在 Android Jetpack Compose 中将 Dp 转换为像素?