首页 > 其他分享 >基础组件:按钮

基础组件:按钮

时间:2024-08-23 13:53:03浏览次数:4  
标签:ElevatedButton TextButton onPressed 基础 按钮 组件 OutlinedButton icon

Material 组件库中提供了多种按钮组件如ElevatedButtonTextButtonOutlinedButton等,它们都是直接或间接对RawMaterialButton组件的包装定制,所以他们大多数属性都和RawMaterialButton一样。在介绍各个按钮时我们先介绍其默认外观,而按钮的外观大都可以通过属性来自定义,我们在后面统一介绍这些属性。另外,所有 Material 库中的按钮都有如下相同点:

  • 按下时都会有“水波动画”(又称“涟漪动画”,就是点击时按钮上会出现水波扩散的动画)。
  • 有一个onPressed属性来设置点击回调,当按钮按下时会执行该回调,如果不提供该回调则按钮会处于禁用状态,禁用状态不响应用户点击。

一、ElevatedButton

ElevatedButton 即"漂浮"按钮,它默认带有阴影和灰色背景。按下后,阴影会变大,如下图所示:

Flutter_btn_A.png


使用ElevatedButton非常简单,如:

ElevatedButton(
    child: Text("normal"),
    onPressed: () {},
);

二、TextButton

TextButton即文本按钮,默认背景透明并不带阴影。按下后,会有背景色,如下图所示:

Flutter_btn_B.png


使用 TextButton 也很简单,代码如下:

TextButton(
    child: Text("normal"),
    onPressed: () {},
)

三、OutlinedButton

OutlinedButton默认有一个边框,不带阴影且背景透明。按下后,边框颜色会变亮、同时出现背景和阴影(较弱),如下图所示:

Flutter_btn_C.png


使用OutlinedButton也很简单,代码如下:

OutlinedButton(
    child: Text("normal"),
    onPressed: () {},
)

四、IconButton

IconButton是一个可点击的Icon,不包括文字,默认没有背景,点击后会出现背景,如图3-9所示:

Flutter_btn_D.png


代码如下:

IconButton(
    icon: Icon(Icons.thumb_up),
    onPressed: () {},
)

五、带图标的按钮

ElevatedButtonTextButtonOutlinedButton都有一个icon 构造函数,通过它可以轻松创建带图标的按钮,如下图所示:

Flutter_btn_E.png


代码如下:

ElevatedButton.icon(
    icon: Icon(Icons.send),
    label: Text("发送"),
    onPressed: _onPressed,
),
OutlinedButton.icon(
    icon: Icon(Icons.add),
    label: Text("添加"),
    onPressed: _onPressed,
),
TextButton.icon(
    icon: Icon(Icons.info),
    label: Text("详情"),
    onPressed: _onPressed,
),

标签:ElevatedButton,TextButton,onPressed,基础,按钮,组件,OutlinedButton,icon
From: https://www.cnblogs.com/linuxAndMcu/p/18375845

相关文章

  • 金融基础知识-投资相关业务基本概念
    1.金融及金融机构金融〔Finance〕货币资金的融通。我们通常说的都是广义的金融,是指有关货币、信用的所有经济关系和交易行为的总称。金融机构〔FinancialInstitutes〕专门从事货币、信用活动的中介组织。目前,我国金融机构按其地位和功能可分为三大类:中央银行,金融监管......
  • 实战:软件架构系列之【早期微服务架构Spring Cloud Netflix中的5大组件示例】
    概叙科普文:万字细说微服务及其框架Netflix,SpringCloud,SpringCloudAlibaba梳理_微服务netflixalibaba-CSDN博客科普文:微服务之技术选型SpringCloudAlibaba_微服务架构图阿里巴巴-CSDN博客SpringCloudNetflix是SpringCloud生态系统中最早期的一个子项目,它为Spr......
  • C++基础 — 数组学习
    目录一、概述二、一维数组1.一维数组定义方式2.一维数组数组名二、二维数组1.二维数组定义方式2.二维数组数组名一、概述所谓数组,就是一个集合,里面存放了相同类型的数据元素。特点1:数组中的每个数据元素都是相同的数据类型;特点2:数组是由连续的内存位置组成的。二、......
  • java基础--集合&学生管理系统
    1.ArrayList集合和数组的优势对比:长度可变添加数据的时候不需要考虑索引,默认将数据添加到末尾1.1ArrayList类概述什么是集合提供一种存储空间可变的存储模型,存储的数据容量可以发生改变ArrayList集合的特点长度可以变化,只能存储引用数据类型。泛型的使......
  • C++入门基础知识29
    成长路上不孤单......
  • 基础组件:文本及样式
    一、TextText用于显示简单样式文本,它包含一些控制文本显示样式的一些属性,一个简单的例子如下:Text("Helloworld",textAlign:TextAlign.left,);Text("Helloworld!I'mJack."*4,maxLines:1,overflow:TextOverflow.ellipsis,);Text("He......
  • 048、Vue3+TypeScript基础,页面通讯之子页面调用父页面的事件
    01、main.js代码如下://引入createApp用于创建Vue实例import{createApp}from'vue'//引入App.vue根组件importAppfrom'./App.vue'constapp=createApp(App);//App.vue的根元素id为appapp.mount('#app')02、App.vue代码如下:<template><......
  • 零基础学习人工智能—Python—Pytorch学习(八)
    前言本文介绍卷积神经网络的上半部分。其实,学习还是需要老师的,因为我自己写文章的时候,就会想当然,比如下面的滑动窗口,我就会想当然的认为所有人都能理解,而实际上,我们在学习的过程中之所以卡顿的点多,就是因为学习资源中想当然的地方太多了。概念卷积神经网络,简称CNN,即Convoluti......
  • 在MES系统的基础上,电子制造企业如何提高计划排产的准确度
    在咨询我司APS计划排程解决方案的客户群体中,电子制造行业的客户的占比高达65%,究其原因是国内电子制造企业大多面临的是小批量、多品种、多非标订单生产模式,而电子产品本身还具有多SKU、替代料号多、工序复杂的情况。为了保障订单准时交付率和质检合格率,越来越多的电子制造企业开......
  • re基础
    网络基础1.网络协议OSI七层模型应用层提供应用程序间通信7表示层处理数据格式,数据加密等6会话层建立,维护和管理会话5传输层建议主机端到端连接4网络层寻址和路由选择3数据链路层提供介质访问,链路管理等2物理层比特流传输1TCP/IP协......