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

Android Jetpack Compose - BadgedBox、Card、ModalBottomSheet、Button(5 种类型)

一、BadgedBox

1、基本介绍
  • BadgedBox 用于在图标、头像等元素右上角添加小型标志(Badge),常用于显示通知计数、状态提示等
2、演示
Box(modifier=Modifier.fillMaxSize()){BadgedBox(modifier=Modifier.align(Alignment.Center),badge={Badge()}){Icon(imageVector=Icons.Filled.Email,contentDescription="Email")}}
varcountbyremember{mutableIntStateOf(0)}Box(modifier=Modifier.fillMaxSize()){BadgedBox(modifier=Modifier.align(Alignment.Center),badge={Badge(containerColor=Color.Red,contentColor=Color.White){Text("$count")}}){Icon(imageVector=Icons.Filled.Email,contentDescription="Email")}Button(modifier=Modifier.align(Alignment.BottomCenter),onClick={count++}){Text("Add")}}

二、Card

1、基本介绍
  • Card 用于创建有视觉层次的交互式内容块,通过形状和阴影突出内容
2、演示
Card(modifier=Modifier.size(width=240.dp,height=100.dp)){Text("Hello Card")}
Card(modifier=Modifier.size(width=240.dp,height=100.dp),colors=CardDefaults.cardColors(containerColor=MaterialTheme.colorScheme.primary,),){Text("Hello Card")}
Box(modifier=Modifier.fillMaxSize(),contentAlignment=Alignment.Center){Card(modifier=Modifier.size(width=240.dp,height=100.dp),elevation=CardDefaults.elevatedCardElevation(defaultElevation=5.dp,),){Text("Hello Card")}}
Box(modifier=Modifier.fillMaxSize(),contentAlignment=Alignment.Center){Card(modifier=Modifier.size(width=240.dp,height=100.dp),shape=RoundedCornerShape(topStart=16.dp,topEnd=0.dp,bottomEnd=16.dp,bottomStart=0.dp),border=BorderStroke(width=2.dp,color=Color.Blue),){Text("Hello Card")}}
  • Card 中子元素的排列
Card(modifier=Modifier.size(width=240.dp,height=100.dp)){Text("test1",modifier=Modifier.align(Alignment.Start))Text("test2",modifier=Modifier.align(Alignment.CenterHorizontally))Text("test3",modifier=Modifier.align(Alignment.End))}

三、ModalBottomSheet

1、基本介绍
  • ModalBottomSheet 可以创建一个从屏幕底部滑出的对话框,会遮挡下层内容并要求用户交互
2、演示
var showModalBottomSheet by remember { mutableStateOf(false) } val sheetState = rememberModalBottomSheetState() Button(onClick = { showModalBottomSheet = true }) { Text("显示底部页") } if (showModalBottomSheet) { ModalBottomSheet( modifier = Modifier.fillMaxHeight(), // 点击外部触发的回调 onDismissRequest = { showModalBottomSheet = false }, sheetState = sheetState ) { Text("test content") } }
  • 设置跳过部分展开状态
valsheetState=rememberModalBottomSheetState(skipPartiallyExpanded=true)

四、Button

1、基本介绍
  • 按钮有 5 种类型,每种类型都有不同的外观
类型说明
Button主按钮
FilledTonalButton填充色调按钮
OutlinedButton轮廓按钮,没有背景
ElevatedButton凸起按钮,有阴影的按钮
TextButton文本按钮,没有背景和边框
2、演示
val context = LocalContext.current Column(modifier = Modifier.fillMaxSize()) { Button( onClick = { Toast.makeText(context, "Button Clicked", Toast.LENGTH_SHORT).show() } ) { Text("Button") } FilledTonalButton( modifier = Modifier.padding(top = 16.dp), onClick = { Toast.makeText(context, "FilledTonalButton Clicked", Toast.LENGTH_SHORT).show() } ) { Text("FilledTonalButton") } OutlinedButton( modifier = Modifier.padding(top = 16.dp), onClick = { Toast.makeText(context, "OutlinedButton Clicked", Toast.LENGTH_SHORT).show() } ) { Text("OutlinedButton") } ElevatedButton( modifier = Modifier.padding(top = 16.dp), onClick = { Toast.makeText(context, "ElevatedButton Clicked", Toast.LENGTH_SHORT).show() } ) { Text("ElevatedButton") } TextButton( modifier = Modifier.padding(top = 16.dp), onClick = { Toast.makeText(context, "TextButton Clicked", Toast.LENGTH_SHORT).show() } ) { Text("TextButton") } }
http://www.jsqmd.com/news/334407/

相关文章:

  • 地铁跑酷
  • Landau 定理
  • 快速掌握在3DMAX中渲染线框模型的四种方法!
  • 某新型住宅地下独立车库线缆计算技巧分享
  • 企业储能想长期稳定运营:必须补齐这套监控与控制
  • 【开题答辩过程】以《基于SpringBoot Vue的校园后勤管理系统设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
  • 面向严苛环境的1/16砖DC-DC电源:设计要点与场景实践
  • 专业AI营销合作伙伴:DeepSeek推广公司的价值与实践 - 品牌2026
  • 2026四川印刷厂家TOP10榜单:聚焦书刊画册、手提袋、包装盒与防伪标签优质厂家 - 深度智识库
  • 如何运用心理分析批评方法?
  • 【热力学】一个反向热传递问题,并确定了对流换热系数,表面温度被用作边界条件来解决问题附matlab代码
  • 提示工程架构师必知:提升生成效率的10个技巧
  • 单片机毕设易上手任务书100例
  • Spring Boot 与 Sleuth:分布式链路追踪的集成、原理与线上故障排查实战
  • 2026.2.2 分治学习笔记
  • YAGEO君耀电子KD32系列压敏电阻:高效浪涌保护解决方案
  • <span class=“js_title_inner“>数据主权是否将决定 AI 基础设施的投资走向?</span>
  • DeepSeek推广公司:帮助您的团队掌握AI营销的核心能力 - 品牌2026
  • 【JavaWeb学习 | 第20篇】EL表达式与JSTL标签 - 实践
  • 数据一致性与容灾——RTO/RPO指标、备份演练与依赖链风险识别
  • day74(2.2)——leetcode面试经典150
  • 从认知到转化:DeepSeek推广公司的全链路营销解决方案 - 品牌2026
  • 2026年智能电动天窗供应商TOP10榜单,谁将引领行业新标准 - 品牌企业推荐师(官方)
  • <span class=“js_title_inner“>LeCunamp;谢赛宁团队重磅论文:RAE能大规模文生图了,比VAE更好!</span>
  • 为什么领先品牌选择DeepSeek推广公司进行AI营销部署 - 品牌2026
  • 与DeepSeek推广公司合作,构建您的智能营销竞争力 - 品牌2026
  • 教你零成本使用满血 Clawdbot,并手把手带你集成飞书和Telegram
  • 智能营销实战:DeepSeek推广公司成功案例深度解析 - 品牌2026
  • 基于深度学习的狗品种检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
  • P1060 [NOIP 2006 普及组] 开心的金明