当前位置:   article > 正文

android compose 设置 padding 和 margin

android compose 设置 padding 和 margin

 第一种方法, 直接看代码!!

  1. @Preview(name = "Test Margin")
  2. @Composable
  3. fun TestMargin() {
  4. Box(modifier = Modifier.fillMaxWidth()) {
  5. Text(
  6. modifier = Modifier
  7. // 设置 margin
  8. .padding(start = 10.dp)
  9. .width(100.dp)
  10. .height(100.dp)
  11. .background(color = Color.Red)
  12. // 设置 padding
  13. .padding(start = 50.dp),
  14. text = "Hello World!"
  15. )
  16. }
  17. }

再看看 ChatGPT 的回答

在 Jetpack Compose 中,ConstraintLayout 是一个非常灵活的布局工具。要在 ConstraintLayout 中设置 paddingmargin,需要分别使用 padding 修饰符和 Modifier.constrainAs 中的 margin 参数。

设置 padding

padding 是为整个 ConstraintLayout 或其子元素添加内边距

  1. ConstraintLayout(
  2. modifier = Modifier.padding(16.dp) // 为整个 ConstraintLayout 设置 padding
  3. ) {
  4. val (box) = createRefs()
  5. Box(
  6. modifier = Modifier
  7. .size(100.dp)
  8. .background(Color.Red)
  9. .padding(8.dp) // 为 Box 设置 padding
  10. .constrainAs(box) {
  11. top.linkTo(parent.top)
  12. start.linkTo(parent.start)
  13. }
  14. )
  15. }

设置 margin

margin 是为子元素在 ConstraintLayout 中设置外边距

  1. ConstraintLayout {
  2. val (box) = createRefs()
  3. Box(
  4. modifier = Modifier
  5. .size(100.dp)
  6. .background(Color.Red)
  7. .constrainAs(box) {
  8. top.linkTo(parent.top, margin = 16.dp) // 设置 marginTop
  9. start.linkTo(parent.start, margin = 16.dp) // 设置 marginStart
  10. }
  11. )
  12. }

综合使用

你可以同时设置 paddingmargin 来控制布局内外的间距。

  1. ConstraintLayout(
  2. modifier = Modifier.padding(16.dp) // 整个布局的 padding
  3. ) {
  4. val (box1, box2) = createRefs()
  5. Box(
  6. modifier = Modifier
  7. .size(100.dp)
  8. .background(Color.Blue)
  9. .constrainAs(box1) {
  10. top.linkTo(parent.top, margin = 8.dp) // 外边距
  11. start.linkTo(parent.start, margin = 8.dp)
  12. }
  13. .padding(4.dp) // 内边距
  14. )
  15. Box(
  16. modifier = Modifier
  17. .size(100.dp)
  18. .background(Color.Green)
  19. .constrainAs(box2) {
  20. top.linkTo(box1.bottom, margin = 16.dp)
  21. start.linkTo(box1.end, margin = 16.dp)
  22. }
  23. .padding(4.dp)
  24. )
  25. }

在这个例子中,ConstraintLayout 本身有一个 16dp 的 padding,而每个 Box 有它们自己的 paddingmargin

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/969798
推荐阅读
相关标签
  

闽ICP备14008679号