news 2026/4/3 4:40:55

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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") } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/30 13:45:13

33岁转行AI大模型,刚好赶上风口!非常详细收藏我这一篇就够了

引言 “30岁,人生过半,转行还来得及吗?”这是很多人在职业瓶颈期的自我怀疑。但我想告诉你,30岁转行AI大模型,不仅来得及,还刚好赶上了风口! 我是如何从一个传统行业的从业者,成功转…

作者头像 李华
网站建设 2026/3/31 3:34:02

Java助力:旅游手册搭子系统源码全解析

Java旅行攻略与搭子系统源码深度解析一、系统架构设计:高可用与实时交互的基石后端框架选型Spring Boot 2.7/3.0:作为核心框架,提供自动配置、起步依赖等功能,快速构建微服务架构(用户服务、攻略服务、匹配服务、消息服…

作者头像 李华
网站建设 2026/4/1 20:14:47

<span class=“js_title_inner“>山大学者这篇文章,你们要看!它是机器学习方法临床应用2026年最集大成者</span>

源自风暴统计网:一键统计分析与绘图的AI网站在医学科研领域,机器学习的应用已经非常普遍了。传统机器学习在做什么? —— 预测;医学研究的终极目标是什么? —— 干预,这需要因果推断。2026年1月21日&#x…

作者头像 李华
网站建设 2026/3/25 18:14:47

接口开发平台——接口编排使用

PingApi 是一款 API 接口开发平台,企业级接口管理、SQL2API 平台。支持动态数据源、动态 SQL 和标签, 支持接入(mysql、oracle、达梦、TiDB、hive、es 和hbase)等 SQL 或 NoSQL 数据源,在线可视化编写 SQL 快速发布接口…

作者头像 李华
网站建设 2026/3/26 14:14:42

【大学院-筆記試験練習:线性代数和数据结构(22)】

大学院-筆記試験練習:线性代数和数据结构(22) 1-前言2-线性代数-题目3-线性代数-参考答案4-数据结构-题目【問題1】連結リストの実装と操作(相似①)【問題2】ソートアルゴリズムの性質(相似②)【…

作者头像 李华