在 Jetpack Compose 中,paddingFromBaseline 是否会更改文本元素的填充?

问题描述 投票:0回答:1
@Composable
fun Sample(){
    val startPadding = 10.dp
    Column {
        Text(
            text = "sample text",
            modifier = Modifier
                .paddingFromBaseline(top = 30.dp)
                .padding(start = startPadding)
        )
        Text(
            text = "sample text",
            modifier = Modifier.padding(start = startPadding)
        )
    }
}

上面的

Composable
包含两个
Text
元素,垂直排列在
Column
中。两个
Text
元素的
start
padding
具有相同的值集。预览如下

paddingFromBaseline
设置在
padding
之后时,会发生一些奇怪的事情,即

@Composable
fun Sample(){
    val startPadding = 10.dp
    Column {
        Text(
            text = "sample text",
            modifier = Modifier
                .padding(start = startPadding)
                .paddingFromBaseline(top = 30.dp)
        )
        Text(
            text = "sample text",
            modifier = Modifier.padding(start = startPadding)
        )
    }
}

第一个

padding
之前的
Text
似乎翻倍了,这是错误还是功能?

我的印象是

Modifier
methods
的调用顺序并不重要,所以额外的
padding
不应该存在。

android-jetpack-compose padding android-jetpack-compose-modifier
1个回答
0
投票

我在模拟器或预览中不再看到您提到的这个问题。

.padding(start=
应在开头添加填充。
paddingFromBaseline(top=
应该从基线添加填充(即)您应该看到添加了顶部填充。这是我看到的代码的输出

我的印象是,调用修饰符方法的顺序并不重要,因此不应存在额外的填充。

不。修饰符方法的顺序很重要,当你链接修饰符方法时应该简洁。 参考官方文档

© www.soinside.com 2019 - 2024. All rights reserved.