我有一个有很多项目的专栏,我想为栏目设置填充,因为所有项目都有相同的填充,除了其中一个没有填充,我怎么能考虑那个特定项目的例外呢?或者是否可以添加一个属性,表示"不获取父级填充"?我知道我可以删除栏中的填充,然后一个接一个地添加,但我想问所有知道这一点的人,还有其他方法吗?

Column(
        modifier = Modifier
            .fillMaxSize()
            .verticalScroll(rememberScrollState()),
            .padding(16.dp),
        verticalArrangement = Arrangement.spacedBy(16.dp)
    ) {
 Text(text = "Teaser1")

Text(text = "Teaser2")

Text(text = "Teaser3")

Text(text = "Teaser")

Text(text = "Teaser4")

Text(text = "Teaser5")

...

}

提前感谢您的帮助.

推荐答案

你可以用Modifier.layout.

我通过为measure添加填充,并在place期间应用填充偏移来覆盖宽度约束.

Text(
    text = "Teaser",
    modifier = Modifier
        .layout { measurable, constraints ->
            val noPaddingConstraints = constraints.copy(
                maxWidth = constraints.maxWidth + (padding * 2).roundToPx()
            ) 
            val placeable = measurable.measure(noPaddingConstraints)
            layout(placeable.width, placeable.height) {
                placeable.place(x = -padding.roundToPx(), y = 0)
            }
        }
)

Java相关问答推荐

如何在Spring Security中设置CustomLogin路径?

在URL类图中表示Java swing类

Java:根据4象限中添加的行数均匀分布行的公式

强制Mockito返回null而不是emtpy list

Java取消任务运行Oracle查询通过JDBC—连接中断,因为SQLSTATE(08006),错误代码(17002)IO错误:套接字读取中断

如何调用Firebase Realtime Database中的子图像列表到android studio中的回收器视图?

为什么我们不能实现两个接口,其中一个接口有相同的签名,其中一个接口有默认的实现在java?'

如何在带有Micronaut的YAML中使用包含特殊字符的字符串作为键

如何解释Java中for-each循环中对Iterable的强制转换方法引用?

如何对多个字段进行分组和排序?

为什么我的回收视图会显示重复的列表?

在向WebSphere中的文档添加元素时iText挂起

来自外部模块的方面(对于Java+Gradle项目)不起作用

在java中使用不同的application.properties-jar而不使用Spring

模拟JUnit未检测到返回字符串的方法的任何声纳覆盖

使用同步方法中的新线程调用同步方法

Java System.getProperty在哪里检索user.home?

MapStruct记录到记录的映射不起作用

Cucumber中第二个网页的类对象未初始化

如何解释泛型类层次 struct 中子类的返回值类型和参数定义?