news 2026/6/9 21:28:29

Android Jetpack Compose - Snackbar、Box

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Android Jetpack Compose - Snackbar、Box

Snackbar

1、基本介绍
  1. Snackbar 是一种轻量级反馈机制,它用于提供有关操作或动作的反馈

  2. Snackbar 会在显示几秒后消失,也可以通过用户交互消失,包含一个可选的用户操作

2、基本使用
valscope=rememberCoroutineScope()valsnackbarHostState=remember{SnackbarHostState()}vardescbyremember{mutableStateOf("")}Box(modifier=Modifier.fillMaxSize()){Column(modifier=Modifier.fillMaxSize(),horizontalAlignment=Alignment.CenterHorizontally){Button(onClick={scope.launch{valreuslt=snackbarHostState.showSnackbar(message="这是一条 Snackbar",actionLabel="关闭",duration=SnackbarDuration.Short)when(reuslt){SnackbarResult.ActionPerformed->{desc="Snackbar 手动关闭"}SnackbarResult.Dismissed->{desc="Snackbar 自动关闭"}}}desc="Snackbar 显示"}){Text("显示 Snackbar")}Text(desc)}SnackbarHost(modifier=Modifier.align(Alignment.BottomCenter).padding(16.dp),hostState=snackbarHostState)}

Box

1、基本介绍
@ComposableinlinefunBox(modifier:Modifier=Modifier,contentAlignment:Alignment=Alignment.TopStart,propagateMinConstraints:Boolean=false,content:@ComposableBoxScope.()->Unit)
参数说明
modifier设置基础属性
contentAlignment设置子元素的默认对齐方式
propagateMinConstraints设置是否将最小约束传递给子元素
content主要内容区域
2、基本使用
  1. Box 的基本使用
Box(modifier=Modifier.size(200.dp).background(Color.LightGray)){Text("test1",modifier=Modifier.align(Alignment.BottomStart))Text("test2",modifier=Modifier.align(Alignment.TopEnd))}
Box(modifier=Modifier.fillMaxSize()){Text(text="居中文本",modifier=Modifier.align(Alignment.Center))Button(onClick={},modifier=Modifier.align(Alignment.BottomCenter)){Text("底部按钮")}}
  1. 使用 contentAlignment
Box(modifier=Modifier.size(200.dp).background(Color.LightGray),contentAlignment=Alignment.Center,){Text("test")}
  1. 子元素使用 matchParentSize 函数,填充父元素
Box(modifier=Modifier.size(200.dp)){Box(modifier=Modifier.matchParentSize().background(Color.Red.copy(alpha=0.3f)))Text("test",modifier=Modifier.align(Alignment.Center))}
3、使用 propagateMinConstraints
  1. 外部灰色 Box 的最小约束不会传递给子元素,导致内部红色 Box 尺寸为 0dp,外部灰色 Box 受尺寸范围与内部红色 Box 尺寸影响,尺寸为 100dp
Box(modifier=Modifier.background(Color.LightGray).widthIn(min=100.dp,max=300.dp).heightIn(min=100.dp,max=300.dp)){Box(modifier=Modifier.background(Color.Red.copy(alpha=0.3f)))}
  1. 外部灰色 Box 的最小约束会传递给子元素,导致内部红色 Box 尺寸为 100dp,外部灰色 Box 受尺寸范围与内部红色 Box 尺寸影响,尺寸为 100dp
Box(modifier=Modifier.background(Color.LightGray).widthIn(min=100.dp,max=300.dp).heightIn(min=100.dp,max=300.dp),propagateMinConstraints=true){Box(modifier=Modifier.background(Color.Red.copy(alpha=0.3f)))}
  1. 外部灰色 Box 的最小约束会传递给子元素,内部红色 Box 自定义尺寸为 150dp,外部灰色 Box 受尺寸范围与内部红色 Box 尺寸影响,尺寸为 150dp
Box(modifier=Modifier.background(Color.LightGray).widthIn(min=100.dp,max=300.dp).heightIn(min=100.dp,max=300.dp),propagateMinConstraints=true){Box(modifier=Modifier.size(150.dp).background(Color.Red.copy(alpha=0.3f)))}
4、子元素层级
  1. 后声明的子元素绘制在先声明的子元素之上
Box(modifier=Modifier.size(200.dp).background(Color.LightGray),){Box(modifier=Modifier.size(150.dp).background(Color.Red).align(Alignment.TopStart))Box(modifier=Modifier.size(150.dp).background(Color.Green).align(Alignment.Center))}
  1. 可以使用 zIndex 控制层级,zIndex 值越大,层级越高
Box(modifier=Modifier.size(200.dp).background(Color.LightGray).zIndex(1f),){Box(modifier=Modifier.size(150.dp).background(Color.Red).align(Alignment.TopStart).zIndex(3f))Box(modifier=Modifier.size(150.dp).background(Color.Green).align(Alignment.Center).zIndex(2f))}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 20:23:14

USB转串口驱动安装后仍无效?超详细版排查流程

USB转串口插了没反应?驱动装了还报错?一文彻底解决! 你有没有遇到过这种情况:手里的USB转串口模块插上电脑,设备管理器里却只显示“未知设备”或者一个带黄色感叹号的“USB Serial Controller”,明明已经下…

作者头像 李华
网站建设 2026/6/8 19:43:10

通达信老鸭头器

{} DIF:EMA(C,5)-EMA(C,34); DEA:EMA(DIF,5); {WWW.} MA24:EMA((HLOC*3)/6,24); 涨停股:HHV(REF(REF(C,1)*1.1-C<0.005,1),11); 老鸭头:涨停股 AND EVERY(MA24>REF(MA24,1)*1.005,5) AND MA24>REF(MA24,1)*1.008AND (DIF-REF(DIF,1)<0 OR DIF<DEA) AND DYNAINFO…

作者头像 李华
网站建设 2026/6/9 19:52:20

SSM校园社团信息管理系统6k87t(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面

系统程序文件列表系统项目功能&#xff1a;学生,社长,社团信息,社团类别,加入社团,社团活动,社团成员,社团缴费SSM校园社团信息管理系统开题报告一、课题研究背景与意义&#xff08;一&#xff09;研究背景校园社团是高校校园文化建设的重要载体&#xff0c;承载着丰富学生课余…

作者头像 李华
网站建设 2026/6/8 20:06:01

计算机毕业设计springboot洗衣店信息管理系统 基于Spring Boot的洗衣店信息管理平台设计与实现 Spring Boot框架下的洗衣店信息化管理系统开发

计算机毕业设计springboot洗衣店信息管理系统3l7099 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着互联网技术的飞速发展&#xff0c;传统洗衣店的管理模式正面临着巨大的变…

作者头像 李华
网站建设 2026/6/8 20:23:45

核心要点:确保准确测量USB3.0传输速度的关键步骤

如何真正测出USB3.0的真实速度&#xff1f;别再被“5Gbps”忽悠了你有没有遇到过这种情况&#xff1a;买了一块标称“读取450MB/s”的USB3.0移动硬盘&#xff0c;插上电脑一测&#xff0c;CrystalDiskMark显示写入才120MB/s&#xff1f;第一反应可能是“商家虚标”&#xff0c;…

作者头像 李华
网站建设 2026/6/8 20:22:40

新手教程:使用USB Burning Tool为Amlogic设备刷机

从“变砖”到重生&#xff1a;手把手教你用USB Burning Tool拯救Amlogic设备 你有没有遇到过这样的场景&#xff1f;家里的电视盒子突然卡在开机画面&#xff0c;长按重启毫无反应&#xff0c;ADB连不上&#xff0c;Recovery也进不去——设备彻底“变砖”。别急着扔掉&#xf…

作者头像 李华