当前位置: 首页 > 知识库问答 >
问题:

如何在Jetpack Compose中添加边距?

许奇
2023-03-14

如何在< code>Jetpack Compose中添加边距?

我看到有一个< code >修饰符用于填充< code >修饰符。padding(...)但是我好像找不到一个作边距还是我瞎了?

有人指导我吗?

非常感谢。

共有3个答案

冯宏浚
2023-03-14

您也可以使用垫片:

Spacer(modifier = Modifier.width(10.dp))

它表示空白空间布局,其大小可以使用< code>Modifier.width 、< code>Modifier.height和< code>Modifier.size修饰符来定义。

假设你想在2个可组合物之间添加边距,那么你可以把它实现为

Text(
    text = stringResource(id = R.string.share_your_posters),
    fontSize = 16.sp,
    color = Color.Black
)

Spacer(modifier = Modifier.width(10.dp))

Image(painter = painterResource(id = R.drawable.ic_starts), contentDescription = null)
燕宜修
2023-03-14

从填充和边距的角度考虑,您指的是我们习惯的所谓框模型。Comuse中没有框模型,而是应用于给定组合的一系列修饰符。诀窍是您可以多次应用相同的修饰符,如填充或边界以及这些事项的顺序,例如:

kotlin prettyprint-override">@Composable
fun PaddingExample() {
    Text(
        text = "Hello World!",
        color = Color.White,
        modifier = Modifier
            .padding(8.dp) // margin
            .border(2.dp, Color.White) // outer border
            .padding(8.dp) // space between the borders
            .border(2.dp, Color.Green) // inner border
            .padding(8.dp) // padding
    )
}

结果,您将得到这个可组合的:

此设计在修饰符留档中有很好的解释:

注意:显式顺序有助于您推断不同修饰符的交互方式。将其与基于视图的系统进行比较,在该系统中,您必须学习长方体模型,边距应用于元素的“外部”,但填充在元素的“内部”,并且背景元素的大小将相应调整。修改器设计使此类行为明确且可预测,并为您提供更多控制以实现所需的准确行为。

晏卓君
2023-03-14

你可以把填充和边距看成一个东西(想象成“间距”)。填充可以在同一个composable中应用两次(或更多次),并实现与边距填充类似的行为。例如:

val shape = CircleShape
Text(
    text = "Text 1",
    style = TextStyle(
        color = Color.White,
        fontWeight = FontWeight.Bold,
        textAlign = TextAlign.Center),
    modifier = Modifier.fillMaxWidth()
        .padding(16.dp)
        .border(2.dp, MaterialTheme.colors.secondary, shape)
        .background(MaterialTheme.colors.primary, shape)
        .padding(16.dp)
)

将导致:

如您所见,第一个填充是在组件与其边框之间添加一个空格。然后定义背景和边框。最后,设置一个新的填充以在边框和文本之间添加空间。

 类似资料:
  • 问题内容: 我有一个Jtable,我想通过在行上添加边框来突出显示行。我已经扩展了a,并且我认为需要在该方法中完成工作。 我猜想是因为似乎没有行的概念,所以我需要为行中的单个单元格创建自定义边框。类似于第一个单元格的左侧,顶部和底部,所有内部单元格的顶部和底部,以及该行中最后一个单元格的顶部,底部和右侧。我在寻找如何实际执行思考过程方面遇到问题。我不确定如何使用该方法,或者这是否就是我需要采取的方

  • 我想在布局底部添加边框。我知道我可以使用可组合,但我只想学习如何绘制边框。 目前,我可以为所有侧面添加边框,这不是我想要的

  • 我使用的是flatter,我想给一个小部件添加一个边框(在本例中是widget)。 我尝试了和,但没有看到如何添加边框。

  • 有什么方法可以让我创建带有圆形边框的自定义弹出窗口?这是我目前的代码和设计:

  • 我的场景是在单个查询中在顶点之间添加多条边: 假设下面的节点:这些是我拥有的标签和ID 用户: 4100 歌曲: 4200 4355 4676 我必须在这些顶点之间建立边 我们通常可以通过在节点之间创建单条边来实现。如果我们想一次在50多个顶点之间创建边,这不是一种有效的方法。我正在使用Tinkerpop 3.0.1。

  • 我只需要添加一个边距顶部,这样,如果我的图像是用这个js: 我知道这可能很简单,但我是个初学者。希望有人能教我怎么做。谢谢!