Compose | UI组件(五) | Button 按钮组件

文章目录

  • 前言
    • Button 是什么?
      • Button的创建
      • Button显示水平方向的UI
    • IconButton是什么?
      • IconButton是创建
    • FloatingActionButton是什么?
      • FloatingActionButton创建
    • ExtendedFloatingActionButton是什么?
  • 总结


前言

随着移动端的技术不断更新迭代,Compose也运用的越来越广泛,很多人都开始学习Compose

本文主要介绍Button的含义和基本用法


Button 是什么?

Button是按照Material Design风格来实现的,一个按钮组件

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun Button(onClick: () -> Unit,                         //点击事件modifier: Modifier = Modifier,               //修饰符enabled: Boolean = true,                     //是否启用shape: Shape = ButtonDefaults.shape,         //定义按钮形状和填充颜色colors: ButtonColors = ButtonDefaults.buttonColors(),           //按钮颜色elevation: ButtonElevation? = ButtonDefaults.buttonElevation(), //按钮阴影border: BorderStroke? = null,                                   //按钮边框contentPadding: PaddingValues = ButtonDefaults.ContentPadding,  //按钮间距interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, //监听组件状态的事件源content: @Composable RowScope.() -> Unit     //按钮的作用域
)

Button的创建

Button(onClick = {  }) {Text(text = "确认")
}

注:onClick 是必选项,用于响应用户点击事件,content 也是必选项,用于显示Button的UI

Button显示水平方向的UI

Button(onClick = {  }) {Icon(imageVector = Icons.TwoTone.Done,contentDescription = null,modifier = Modifier.size(ButtonDefaults.IconSize))Spacer(modifier = Modifier.size(ButtonDefaults.IconSpacing))Text(text = "确认")
}

注:content: @Composable RowScope.() -> UnitRowScope 为水平方向作用域

IconButton是什么?

IconButton 是一个可点击的图标,一般都需要再IconButton组件提供一个图标组件

@Composable
fun IconButton(onClick: () -> Unit,              //点击事件modifier: Modifier = Modifier,    //修饰符enabled: Boolean = true,          //是否启用colors: IconButtonColors = IconButtonDefaults.iconButtonColors(), //图标按钮颜色interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },   //监听组件状态的事件源content: @Composable () -> Unit //作用域
)

IconButton是创建

IconButton(onClick = { },modifier = Modifier.size(16.dp)) {Icon(imageVector =Icons.Filled.Close,contentDescription = "关闭")
}

FloatingActionButton是什么?

FloatingActionButton是一个悬浮按钮,需要提供Icon组件

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun FloatingActionButton(onClick: () -> Unit,           //点击事件modifier: Modifier = Modifier, //修饰符shape: Shape = FloatingActionButtonDefaults.shape, //定义按钮形状和填充颜色containerColor: Color = FloatingActionButtonDefaults.containerColor, //按钮颜色contentColor: Color = contentColorFor(containerColor),      //图标颜色elevation: FloatingActionButtonElevation = FloatingActionButtonDefaults.elevation(),//阴影interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, //监听组件状态的事件源content: @Composable () -> Unit, //作用域
)

FloatingActionButton创建

FloatingActionButton(onClick = { }) {Icon(Icons.Filled.KeyboardArrowUp, contentDescription = null)
}

ExtendedFloatingActionButton是什么?

ExtendedFloatingActionButton是带有文字的悬浮框,和FloatingActionButton区别就是可以带有文字

ExtendedFloatingActionButton(onClick = { }, icon = { Icon( imageVector = Icons.Filled.Favorite, contentDescription = null)},text ={ Text(text = "添加到我喜欢")} 
)

总结

  1. Button是一个按钮组件
  2. IconButton是一个图标按钮组件
  3. FloatingActionButton是一个悬浮按钮,可以带有图标
  4. ExtendedFloatingActionButton是一个悬浮按钮,可以带有图标和文字

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/652901.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java—AWT

AWT 课程:1、GUI编程简介_哔哩哔哩_bilibili 一.介绍 包含了很多类和接口!GUI!元素:窗口、按钮、文本框java.awt 二.窗口 1.构造 2.方法 // 实例化frame类Frame frame new Frame("这个一个框");// 设置可见性frame.…

Metaphor(EXA) 基于大语言模型的搜索引擎

文章目录 关于 Metaphor使用示例 关于 Metaphor Metaphor是基于大语言模型的搜索引擎,允许用户使用完整的句子和自然语言搜索,还可以模拟人们在互联网上分享和谈论链接的方式进行查询内容。 Metaphor同时还能与LLMs结合使用,允许LLMs连接互联…

帧头不对齐的频段间载波聚合(interCA-NonAlignedFrame)

提升上下行吞吐量是3GPP演进的重要方向之一,其中,载波聚合是提升吞吐量最有效的手段之一。在3GPP R16中,帧头不对齐的频段间载波聚合被提出,可以进一步提升上行吞吐量。 帧头对齐的频段间载波聚合 帧头对其的频段间载波聚合&…

第十三届蓝桥杯省赛C/C++,JAVA,Python研究生组题 质因数个数

4658. 质因数个数 - AcWing题库 给定正整数 n,请问有多少个质数是 n 的约数。 输入格式 输入的第一行包含一个整数 n。 输出格式 输出一个整数,表示 n 的质数约数个数。 数据范围 对于 30%30% 的评测用例,1≤n≤10000 对于 60%60% 的评测用例…

(c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度

适用情况: ①题目中出现最短,最长 ②出现子串、子数组、子数列 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度,字符串本身是其最长的子串,子串要求&am…

编曲学习:和声音程 调式体系 唱名法 调式调性

34届和声音程 调式体系 唱名法 调式调性https://app8epdhy0u9502.pc.xiaoe-tech.com/live_pc/l_65af994be4b064a8cb1c3a5f?course_idcourse_2XLKtQnQx9GrQHac7OPmHD9tqbv 34届独立音乐人编曲训练营https://app8epdhy0u9502.pc.xiaoe-tech.com/p/t_pc/course_pc_detail/camp_p…

开源项目提交pr的方式

在开源项目中提交PR(Pull Request)是一种常见的贡献方式,它允许开发者向项目仓库提交代码更改并请求合并到主分支中。以下是提交PR的一般步骤: Fork仓库:首先,你需要Fork(即复制)你想…

鸿蒙开发-UI-组件

鸿蒙开发-UI-布局 鸿蒙开发-UI-布局-线性布局 鸿蒙开发-UI-布局-层叠布局 鸿蒙开发-UI-布局-弹性布局 鸿蒙开发-UI-布局-相对布局 鸿蒙开发-UI-布局-格栅布局 鸿蒙开发-UI-布局-列表 ​​​​​​鸿蒙开发-UI-布局-网格 鸿蒙开发-UI-布局-轮播 文章目录 前言 一、按钮 1.创建…

深度强化学习(王树森)笔记04

深度强化学习(DRL) 本文是学习笔记,如有侵权,请联系删除。本文在ChatGPT辅助下完成。 参考链接 Deep Reinforcement Learning官方链接:https://github.com/wangshusen/DRL 源代码链接:https://github.c…

论文精读--BERT

不像视觉领域,在Bert出现之前的nlp领域还没有一个深的网络,使得能在大数据集上训练一个深的神经网络,并应用到很多nlp的任务上 Abstract We introduce a new language representation model called BERT, which stands for Bidirectional En…

范仲淹大直男逆袭,先天下之忧而忧

人在最艰苦时,最能体现英雄本色。 天底下最苦的是读书。读书要眼到、手到、心到,专心致志,灵活运用。 范仲淹读书很用功,每天煮一锅粥。等到第二天,粥凝固了,范仲淹把隔夜粥划为四块,早上吃两块…

Android Compose 简单的网络请求框架实例。

在Android Compose中创建一个网络请求框架通常涉及使用Coroutines和Retrofit库。以下是一个简单的例子,展示了如何使用Compose和Retrofit来构建一个网络请求: 一、确保在你的build.gradle文件中添加了必要的依赖项: kotlin dependencies {…

【C语言】编译和链接

目录 (一)编译 (1)预处理(预编译) (2)编译 i.词法分析 ii.语法分析 iii.语义分析 (3)汇编 (二)链接 重定位 正文开始 (一)编译…

MPI 集体通信(collective communication)

1、MPI调用接口 (1)广播MPI_BCAST (2)散发MPI_SCATTER (3)收集MPI_GATHER (4)归约MI_REDUCE MPI_REDUCE将组内每个进程输入缓冲区中的数据按给定的操作op进行运算,并将…

什么是协方差矩阵?

协方差矩阵(Covariance Matrix)是一个用于衡量多个变量之间相互关系的工具,在统计学和数据分析领域中非常重要。这个矩阵展现了每一对变量之间的协方差。协方差是衡量两个变量如何一起变化的度量;如果两个变量的协方差是正的&…

第四篇:怎么写express的路由(接口+请求)

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📘 引言: &#x1f4…

【Flink-1.17-教程】-【四】Flink DataStream API(7)输出算子(Sink)

【Flink-1.17-教程】-【四】Flink DataStream API(7)输出算子(Sink) 1)连接到外部系统2)输出到文件3)输出到 Kafka4)输出到 MySQL(JDBC)5)自定义 …

C++力扣题目416--分割等和子集 1049--最后一块石头的重量II

416. 分割等和子集 力扣题目链接(opens new window) 题目难易:中等 给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: […

k8s-配置管理

一、ConfigMap 1.1 创建ConfigMap 1.2 在环境种使用ConfigMap ConfigMap最为常见的使用方式就是在环境变量和Volume中引用。 1.3 在Volume中引用ConfigMap 在Volume中引用ConfigMap,就是通过文件的方式直接将ConfigMap的每条数据填入Volume,每条数据是…

【JavaSE篇】——数组的定义与使用

目录 本章的目标: 🎈数组的基本概念 🍭创建数组 🍭数组的初始化 🍭数组的使用 👉数组中元素访问 👉遍历数组 🎈数组是引用类型 🍭初始JVM的内存分布 &#x1f…