一、Flutter 中的按钮组件介绍
  Flutter 里有很多的 Button 组件很多,常见的按钮组件有:RaisedButton、FlatButton、
  IconButton、OutlineButton、ButtonBar、FloatingActionButton 等。
  RaisedButton :凸起的按钮,其实就是 Material Design 风格的 Button
  FlatButton :扁平化的按钮
  OutlineButton:线框按钮
  IconButton :图标按钮
  ButtonBar:按钮组
  FloatingActionButton:浮动按钮
 
二、Flutter 按钮组件中的一些属性
onPressed  VoidCallback,一般接收一个方法必填参数,按下按钮时触发的回调,接收一个方法,传 null 表示按钮禁用,会显示禁用相关样式
child  Widget
textColor  Color 文本颜色
color Color 按钮的颜色
disabledColor  Color  按钮禁用时的颜色
disabledTextColor  Color  按钮禁用时的文本颜色
splashColor  Color  点击按钮时水波纹的颜色
highlightColor  Color  点击(长按)按钮后按钮的颜色
elevation  double  阴影的范围,值越大阴影范围越大
padding  内边距
shape  设置按钮的形状
   shape: RoundedRectangleBorder(
      borderRadius:
      BorderRadius.circular(10),
   )
  shape: CircleBorder(
     side: BorderSide(
        color: Colors.white,
    )
  ) 
 
 
案例代码

  1. import 'package:flutter/material.dart';
  2.  
  3. class ButtonDemoPage extends StatelessWidget {
    const ButtonDemoPage({Key key}) : super(key: key);
  4.  
  5. @override
    Widget build(BuildContext context) {
    return Scaffold(
    appBar: AppBar(
    title: Text("按钮演示页面"),
    actions: <Widget>[
    IconButton(
    icon: Icon(Icons.settings),
    onPressed: (){
  6.  
  7. },
    )
    ],
    ),
    body: Column(
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
  1. MaterialButton(
    height: Screen.width(height: 85),
    color: ColorGather.colorMain(),
    textColor: Colors.white,
    elevation: 2.0,
    shape: RoundedRectangleBorder(
    borderRadius: BorderRadius.all(Radius.circular(Screen.width(8)))
    ),
    child: Text('确认', style: TextStyle(fontSize: Screen.width(28)),),
    onPressed:() {},
    ),
  1. Row(
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
    RaisedButton(
    child: Text('普通按钮'),
    onPressed: () {
    print("普通按钮");
    },
    ),
    SizedBox(width: 5),
    RaisedButton(
    child: Text('颜色按钮'),
    color: Colors.blue,
    textColor: Colors.white,
    onPressed: () {
    print("有颜色按钮");
    },
    ),
    SizedBox(width: 5),
    RaisedButton(
    child: Text('阴影按钮'),
    color: Colors.blue,
    textColor: Colors.white,
    elevation: 20,
    onPressed: () {
    print("有阴影按钮");
    },
    ),
    SizedBox(width: 5),
    RaisedButton.icon(
    icon: Icon(Icons.search),
    label: Text('图标按钮'),
    color: Colors.blue,
    textColor: Colors.white,
    // onPressed: null,
    onPressed: () {
    print("图标按钮");
    })
    ],
    ),
    SizedBox(height: 10),
    Row(
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
    Container(
    height: 50,
    width: 400,
    child: RaisedButton(
    child: Text('宽度高度'),
    color: Colors.blue,
    textColor: Colors.white,
    elevation: 20,
    onPressed: () {
    print("宽度高度");
    },
    ),
    )
    ],
    ),
    SizedBox(height: 10),
    Row(
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
    Expanded(
    child: Container(
    height: 60,
    margin: EdgeInsets.all(10),
    child: RaisedButton(
    child: Text('自适应按钮'),
    color: Colors.blue,
    textColor: Colors.white,
    elevation: 20,
    onPressed: () {
    print("自适应按钮");
    },
    ),
    ),
    )
    ],
    ),
    SizedBox(height: 10),
    Row(
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
    RaisedButton(
    child: Text('圆角按钮'),
    color: Colors.blue,
    textColor: Colors.white,
    elevation: 20,
    shape: RoundedRectangleBorder(
    borderRadius: BorderRadius.circular(10)),
    onPressed: () {
    print("圆角按钮");
    }),
    Container(
    height: 80,
    child: RaisedButton(
    child: Text('圆形按钮'),
    color: Colors.blue,
    textColor: Colors.white,
    elevation: 20,
    splashColor: Colors.red,
    shape:
    CircleBorder(side: BorderSide(color: Colors.white)),
    onPressed: () {
    print("圆形按钮");
    }),
    ),
    FlatButton(
    child: Text("按钮"),
    color: Colors.blue,
    textColor: Colors.yellow,
    onPressed: () {
    print('FlatButton');
    },
    ),
    SizedBox(width: 10),
    OutlineButton(
    child: Text("按钮"),
    // color: Colors.red, //没有效果
    // textColor: Colors.yellow,
    onPressed: () {
    print('FlatButton');
    })
    ],
    ),
    SizedBox(height: 10),
    Row(
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
    Expanded(
    child: Container(
    margin: EdgeInsets.all(20),
    height: 50,
    child: OutlineButton(child: Text("注册"), onPressed: () {}),
    ),
    )
    ],
    ),
    Row(
    mainAxisAlignment: MainAxisAlignment.end,
    children: <Widget>[
    ButtonBar(
    children: <Widget>[
  2.  
  3. RaisedButton(
    child: Text('登录'),
    color: Colors.blue,
    textColor: Colors.white,
    elevation: 20,
    onPressed: () {
    print("宽度高度");
    },
    ),
    RaisedButton(
    child: Text('注册'),
    color: Colors.blue,
    textColor: Colors.white,
    elevation: 20,
    onPressed: () {
    print("宽度高度");
    },
    ),
    MyButton(text: "自定义按钮",height: 60.0,width: 100.0,pressed: (){
    print('自定义按钮');
    })
  4.  
  5. ],
    )
    ],
    )
    ],
    ));
    }
    }
  6.  
  7. //自定义按钮组件
  8.  
  9. class MyButton extends StatelessWidget {
    final text;
    final pressed;
    final width;
    final height;
    const MyButton({this.text='',this.pressed=null,this.width=80,this.height=30}) ;
  10.  
  11. @override
    Widget build(BuildContext context) {
    return Container(
    height: this.height,
    width: this.width,
    child: RaisedButton(
    child: Text(this.text),
    onPressed:this.pressed ,
    ),
    );
    }
    }

Flutter 中的常见的按钮组件 以及自 定义按钮组件的更多相关文章

  1. Flutter 中的常见的按钮组件 以及自定义按钮组件

    Flutter 里有很多的 Button 组件很多,常见的按钮组件有:RaisedButton.FlatButton. IconButton.OutlineButton.ButtonBar.Float ...

  2. 第六章 组件 55 组件-使用components定义私有组件

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  3. 22Flutter中的常见的按钮组件 以及自定义按钮组件

    /* Flutter中的常见的按钮组件 以及自定义按钮组件 一.Flutter中的按钮组件介绍 Flutter里有很多的Button组件,常见的按钮组件有:RaisedButton/FlatButto ...

  4. Flutter中的按钮组件介绍

    Flutter 里有很多的 Button 组件很多,常见的按钮组件有:RaisedButton.FlatButton.IconButton.OutlineButton.ButtonBar.Floati ...

  5. flutter中的按钮组件

    Flutter 里有很多的 Button 组件很多,常见的按钮组件有:RaisedButton.FlatButton.IconButton.OutlineButton.ButtonBar.Floati ...

  6. Flutter学习笔记(11)--文本组件、图标及按钮组件

    如需转载,请注明出处:Flutter学习笔记(10)--容器组件.图片组件 文本组件 文本组件(text)负责显示文本和定义显示样式,下表为text常见属性 Text组件属性及描述 属性名 类型 默认 ...

  7. Flutter中Expanded组件用法

    Flutter中Expanded组件用法 Expanded组件可以使Row.Column.Flex等子组件在其主轴方向上展开并填充可用空间(例如,Row在水平方向,Column在垂直方向).如果多个子 ...

  8. 在Flutter中嵌入Native组件的正确姿势是...

    引言 在漫长的从Native向Flutter过渡的混合工程时期,要想平滑地过渡,在Flutter中使用Native中较为完善的控件会是一个很好的选择.本文希望向大家介绍AndroidView的使用方式 ...

  9. Flutter中的普通路由与命名路由(Navigator组件)

    Flutter 中的路由通俗的讲就是页面跳转.在 Flutter 中通过 Navigator 组件管理路由导航.并提供了管理堆栈的方法.如:Navigator.push 和 Navigator.pop ...

随机推荐

  1. KafkaUtils.createDirectStream报错Cannot resolve symbol createDirectStream

    一开以为是自己导包导错了,但是对比了一下之前的程序发现并没有错, import org.apache.spark.streaming.kafka.{HasOffsetRanges, KafkaUtil ...

  2. Python-Django学习笔记(一)-MTV设计模式

    Django是开源的.大而且全的Web应用框架. 它独具特色,采用了MTV设计模式. MTV框架包括:Model(模型).Template(模板)和View(视图) Model(模型):负责业务对象与 ...

  3. 【Python】圆周率的计算

    1.公式法  代码: #CalPiV1.py pi=0 N=100 for k in range(N): pi+=1/pow(16,k)*(\ 4/(8*k+1)-2/(8*k+4)-\ 1/(8*k ...

  4. solr es调优化和问题排查

    (1)TOP 显示当前进程状态,结合 ps -aux 可以看是哪一个服务.mpstat 可以看是cpu的负载 (2)TOP -H -u 用户名 显示该用户下 所有的线程. 还有pstree (3)js ...

  5. 腾讯云COS对象存储

    一.腾讯云COS 腾讯云对象存储 COS 是一种存储海量数据的分布式存储服务.COS 提供了多种对象的存储类型:标准存储.低频存储.归档存储. 二.为什么要使用TA 便宜: 个人用户有6个月的免费使用 ...

  6. mysql对表中数据根据某一字段去重

    要删除重复的记录,就要先查出重复的记录,这个很容易做到 注意:这是查出所有重复记录的第一条记录,需要保留,因此需要添加查询条件,查出所有的重复记录 ) ) 然后 delete from cqssc w ...

  7. AcWing 482. 合唱队形

    #include<iostream> using namespace std ; ; int f[N],g[N]; int w[N]; int main() { int n; cin> ...

  8. 【Python】字符串处理方法

  9. EF工作流程

    1.EF基本的CRUD(增删改查)流程 2.EF的工作过程简析 EDM--Entity Data Model--实体数据模型 概念模型: EF通过领域类,上下文类,默认约定和配置构建概念模型. 存储模 ...

  10. centos7使用jenkins启动找不到模块

    问题: 在jenkins上启动pycharm项目报:ModuleNotFoundError: No module named 'wanwenyc' 其中‘wanwenyc’为pycharm工程项目路径 ...