当前位置: 首页 > news >正文

composeUI中Box 和 Surface的区别

在 Jetpack Compose 中,BoxSurface 都是常用的布局组件,但它们的用途和功能有所不同。

Box 组件:

  • 功能Box 是一个用于将子组件堆叠在一起的布局容器,类似于传统 Android 中的 FrameLayout
  • 用途:适用于需要将多个子组件重叠显示的场景,例如在同一位置显示文本和图像。
  • 特点Box 允许子组件相互覆盖,并提供对齐和尺寸控制。
Box(modifier = Modifier.size(150.dp).background(Color.Green)
) {Box(modifier = Modifier.size(80.dp).background(Color.Red))Text(text = "Hello",modifier = Modifier.align(Alignment.Center))
}

Surface 组件:

  • 功能Surface 是一个用于设置背景颜色、形状、阴影等属性的容器,遵循 Material Design 的设计规范。
  • 用途:用于创建具有特定视觉效果的区域,例如卡片、按钮等。
  • 特点Surface 提供了对形状、颜色、阴影和边框的控制,方便实现一致的视觉效果。
Surface(shape = RoundedCornerShape(8.dp),shadowElevation = 10.dp,modifier = Modifier.height(100.dp).background(Color.Red)
) {Row {Image(painter = painterResource(id = R.drawable.ic_launcher_background),contentDescription = null,modifier = Modifier.size(100.dp).background(Color.Red),contentScale = ContentScale.Crop)Spacer(modifier = Modifier.padding(horizontal = 12.dp))Column(modifier = Modifier.fillMaxSize(),verticalArrangement = Arrangement.Center) {Text(text = "Liratie", style = MaterialTheme.typography.titleMedium)Spacer(modifier = Modifier.padding(vertical = 8.dp))Text(text = "谭祖爱")}}
}

主要区别:

  • 功能定位Box 主要用于布局和对齐子组件,而 Surface 主要用于设置视觉效果,如背景颜色、形状和阴影等。
  • 使用场景Box 适用于需要堆叠和对齐子组件的场景,Surface 适用于需要设置背景、形状和阴影的场景。
  • 属性支持Surface 提供了更多与视觉效果相关的属性,如 shapecolorshadowElevationborder,而 Box 主要关注布局和对齐。
http://www.lryc.cn/news/531935.html

相关文章:

  • 【LeetCode】5. 贪心算法:买卖股票时机
  • MySQL表的CURD
  • Java 如何覆盖第三方 jar 包中的类
  • VSCode中使用EmmyLua插件对Unity的tolua断点调试
  • 【数据结构】_链表经典算法OJ(力扣/牛客第二弹)
  • Spring Boot 2 快速教程:WebFlux优缺点及性能分析(四)
  • 自定义多功能输入对话框:基于 Qt 打造灵活交互界面
  • 基于springboot河南省旅游管理系统
  • LabVIEW图像采集与应变场测量系统
  • CommonAPI学习笔记-2
  • ISP代理与住宅代理的区别
  • [25] cuda 应用之 nppi 实现图像色彩调整
  • Java 大视界 -- Java 大数据在智慧文旅中的应用与体验优化(74)
  • PyTorch快速入门
  • 100.7 AI量化面试题:如何利用新闻文本数据构建交易信号?
  • CF 465B.Inbox (100500)(Java实现)
  • 微信小程序获取openid和其他接口同时并发请求如何保证先获取到openid
  • 实现动态卡通笑脸的着色器实现
  • DeepSeek R1 模型解读与微调
  • YOLOv11实时目标检测 | 摄像头视频图片文件检测
  • Node.js学习指南
  • 2.5学习总结
  • java进阶文章链接
  • vue2+vue3 HMCXY基础入门
  • 一次线程数超限导致的hive写入hbase作业失败分析
  • ip属地是手机号还是手机位置?一文理清
  • 查看设备uuid
  • C_C++输入输出(下)
  • All in one 的 AI tool Chain “Halomate”
  • crewai框架第三方API使用官方RAG工具(pdf,csv,json)