最最最常用的就是按钮了吧~ — 常用组件详解(按钮系列)

简介: 普通的基础组件自然不能满足我们的日常开发需求,所以小T带大家了解Flutter开发中的常用组件。

前言

普通的基础组件自然不能满足我们的日常开发需求,所以小T带大家了解Flutter开发中的常用组件

**本篇将介绍常用的组件。分为上中下三篇在这里插入图片描述
结构图:
在这里插入图片描述

本小结内容:

1.IconButton

2.MaterialButton

​ 1)RaisedButton

​ 2)FlatButton

​ 3)OutlineButton

3.InkWell(用处超多哦~)

好好看好好学 在这里插入图片描述

1.IconButton

IconButton一个Material图标按钮,点击时会有水波动画

让我们来看看它的源码

IconButton({
    Key key,
    this.iconSize = 24.0,
    this.padding = const EdgeInsets.all(8.0),
    this.alignment = Alignment.center,
    @required this.icon,
    this.color,
    this.highlightColor,
    this.splashColor,
    this.disabledColor,
    @required this.onPressed,
    this.tooltip
})

常用属性:

3.1 iconSize:图标大小
iconSize:24.0
3.2 icon:图标资源
icon: Icon(Icons.android),  //也可以使用自己的Image,包括SVG。
3.3 alignment:图标位置
alignment: Alignment.center,
3.4 color:颜色
color: Colors.black,
3.5 highlightColor:高亮颜色,点击(长按)按钮后的颜色
highlightColor: Colors.green,
3.6 padding:内边距,其接收值的类型是EdgeInsetsGeometry类型的

一次性设置上下左右的间距

padding: EdgeInsets.all(20),

3.7 splashColor:水波纹颜色

splashColor: Colors.black,
3.8 disabledColor:不可点击时高亮颜色
disabledColor: Colors.black,

需要图标的话:

推荐阿里巴巴矢量图库:http://www.iconfont.cn/

一个简单的实现:
在这里插入图片描述

在这里插入图片描述

return IconButton(
      icon: Icon(Icons.ac_unit),
      iconSize: 50,
      onPressed: (){},
      color: Colors.red,
      disabledColor: Colors.black,
      splashColor: Colors.yellow,
      highlightColor: Colors.green,
    );

2.MaterialButton

默认的是一个最小宽度为88,高度为36,有圆角,有阴影,点击的时候高亮,有 onpress 属性的一个控件。可以响应用户点击事件。但是:官方不推荐使用这个,推荐使用它的子类 RaisedButton、FlatButton 和 OutlineButton,如果自定义 button 推荐使用 RawMaterialButton

属性

  • onPressed: 按下之后松开的回调,也就是所谓的点击事件。其实是当用户手抬起来时的动作
  • onHighlightChanged: onPressed!=null 的时候可以看出 相当于用户按下时(高亮) 或者 松开时(不高亮)的监听。
  • textColor: 里面文本的颜色
  • disabledTextColor: 当状态为 disable的时候 文本的颜色,onpress=null 为disable
    注意点 在这里无效 在它子类有效(RaisedButton ,FlatButton ,OutlineButton )
  • color: // 当是 enable (onpress != null) 背景色
  • disabledColor: //onpress = null 的时候的颜色(不知道为什么测试不管用)
    注意点 在这里无效 在它子类有效(RaisedButton ,FlatButton ,OutlineButton )
  • highlightColor: 当用户 按下高亮时 的颜色
  • elevation: Z轴阴影 默认是2 ,当 enable 的时候的阴影
  • highlightElevation: 高亮时的阴影 默认是 8 button 被按下的时候
  • disabledElevation: 当 disabled (onpress = null) 的阴影 默认是0 ,测试的时候 阴影还是 为0.0,也就是说不管用
    注意点 在这里无效 在它子类有效(RaisedButton ,FlatButton ,OutlineButton )
  • minWidth: 最小的宽度 默认是 88 。 在 ButtonTheme 规定的
  • height: 高度, 默认是 36 也是在 ButtonTheme 规定的
  • child: 包括的子控件
  • shape 边框样式
    注意点 在这里无效 在它子类有效(RaisedButton ,FlatButton ,OutlineButton )
    在这里插入图片描述
MaterialButton(
          // onPressed不能设置null  相当于用户按下时(高亮) 或者 松开时(不高亮)的监听。 也就是 MaterialButton 样式改变时
//              onHighlightChanged: (boo) {
//                Fluttertoast.showToast(
//                    msg: "onHighlightChanged改变了", textColor: Colors.white);
//              },
          child: Text("MaterialButton"),
          // 按下之后松开的回调,也就是所谓的点击事件。其实是当用户手抬起来时的动作
          onPressed: () {},
//              onPressed: null,
          // 里面文本的颜色
//              textColor: Colors.red,
          // 当状态为 disable的时候 文本的颜色,onpress=null 为disable
          // 在这里we;
          //在这里无效 在它子类有效(RaisedButton ,FlatButton ,OutlineButton )
//              disabledTextColor: Colors.black,
          // 设置边框样式 , 在MaterialButton这里没用 在它子类里面有用
//              shape: Border.all(
//                width: 10,
//                color:Color(0xFFFF0000),
//                style: BorderStyle.solid,
//              ),
          // 当是 enable (onpress != null) 背景 ,有阴影,有圆角
          //在这里无效 在它子类有效(RaisedButton ,FlatButton ,OutlineButton )
          shape: Border.all(
              color: Color(0xFFFF0000), style: BorderStyle.solid, width: 2),
          color: Colors.grey,
          // onpress = null 的时候的颜色(不知道为什么不管用)
          // 我测试的结果是 当onPress = null 的时候 ,还是 上面 color 属性的颜色, 只不过是没有阴影,没有圆角而已
          // 在这里无效 在它子类有效(RaisedButton ,FlatButton ,OutlineButton )
//              disabledColor: Colors.amberAccent,
          // 当用户 按下高亮时 的颜色
//              highlightColor: Colors.red,
//              splashColor: Colors.deepPurple,
//              colorBrightness: Brightness.light,
          // 高度, 阴影 默认是2
          elevation: 2,
          // 高亮时的阴影 默认是 8  button 被按下的时候
//              highlightElevation: 14,
          // 当 disabled (onpress = null) 的阴影   默认是0
          // 测试的时候 阴影还是 为0.0
          //在这里无效 在它子类有效(RaisedButton ,FlatButton ,OutlineButton )
//              disabledElevation: 20,
//              padding: EdgeInsets.all(20),
          // 最小的宽度 默认是 88 。 在 ButtonTheme 规定的
//              minWidth: 187,
          //  高度, 默认是 36 也是在 ButtonTheme 规定的
//              height: 1,
        ),

1) RaisedButton

RaisedButton: 属性基本上和上面的父类一样,The [elevation], [highlightElevation], [disabledElevation], 和 [clipBehavior] 必须非空.

2)FlatButton:

FlatButton:扁平按钮,一般没有阴影,没有边框,且大部分用在 toolbar,dialogs , 或者 其他内容中 注意点: 一定要设置onPress属性,否则他就是不可点击的.

3)OutlineButton

OutlineButton: 默认有细灰色圆角边框,无阴影,且背景透明,当按下的时候,有默认highlightElevation 和 highColor 。

3.InkWell

这个可是大大滴好东西,它所嵌套的东西都会有点击事件!!!

常用点击事件:

onTap      单击事件
onDoubleTap 双击事件
onLongPress  长按事件
onTapCancel  点击取消

在这里插入图片描述

InkWell(
      onTap: () {
        print("别点我啦!!!");
      },
      onDoubleTap: () {
        print("你还点我两下!!!");
      },
      onLongPress: () {
        print("按着我不放是啥意思!!!");
      },
      child: Container(
        child: Text("可以点击的文字"),
      ),
    )

这个组件包含了几乎所有的点击事件,真是一大利器!!

大家快去体验一下吧~

欢迎留言纠正 ~

相关文章
|
网络协议 Linux
Centos IP、DNS设置
1、CentOS 修改DNS 修改对应网卡的DNS的配置文件# vi /etc/resolv.conf 修改以下内容 nameserver 8.8.8.8 #google域名服务器nameserver 8.8.4.4 #google域名服务器2、CentOS 修改网关 修改对应网卡的网关的配置文件[root@centos]# vi /etc/sysconfig/network 修改以下内容NETWORKING=yes(表示系统是否使用网络,一般设置为yes。
3865 0
|
人工智能 自然语言处理 IDE
Trae 开发工具与使用技巧
V哥推荐字节推出的AI原生IDE——Trae,这款工具大幅提升程序员开发效率。Trae定位为“AI协同编程”伙伴,支持零基础用户通过对话完成项目开发。其核心功能包括Builder模式自动生成代码、智能问答辅助开发、上下文引用与多模态开发等。对比Cursor和Windsurf,Trae在中文支持、全自动项目管理和免费模型使用上更具优势。新手可通过3步快速上手:启动Builder模式、一键运行调试、迭代优化。立即体验Trae,开启AI时代编程新篇章!
5368 2
|
JSON Dart API
Flutter 使用图片和资源
Flutter 使用图片和资源
647 2
Flutter 使用图片和资源
|
数据可视化 Java API
【Spring Boot 快速入门】五、Spring Boot集成Swagger UI
【Spring Boot 快速入门】五、Spring Boot集成Swagger UI
1807 0
【Spring Boot 快速入门】五、Spring Boot集成Swagger UI
|
数据挖掘 Python
用python的tushare模块分析股票案例(python3经典编程案例)
该文章提供了使用Python的tushare模块分析股票数据的案例,展示了如何获取股票数据以及进行基本的数据分析。
1508 0
|
UED 开发者
Flutter笔记:Widgets Easier组件库(13)- 使用底部弹窗
Flutter笔记:Widgets Easier组件库(13)- 使用底部弹窗
630 2
|
数据安全/隐私保护 Android开发 开发者
Flutter笔记:Widgets Easier组件库-使用隐私守卫
Flutter笔记:Widgets Easier组件库-使用隐私守卫
416 2
|
开发者
Flutter笔记:Widgets Easier组件库(11)- 使用提示吐丝(Tip Toasts)
Flutter笔记:Widgets Easier组件库(11)- 使用提示吐丝(Tip Toasts)
297 1

热门文章

最新文章