zoukankan      html  css  js  c++  java
  • 22Flutter中的常见的按钮组件 以及自定义按钮组件

    /*
    Flutter中的常见的按钮组件 以及自定义按钮组件
    一、Flutter中的按钮组件介绍
    Flutter里有很多的Button组件,常见的按钮组件有:RaisedButton/FlatButton/IconButton/
    OutlineButton/ButtonBar/FloatingActionButton等。
    RaisedButton:凸起的按钮,其实就是Material Design风格的Button
    FlatButton:扁平化的按钮
    OutlineButton:线框按钮
    IconButton:图标按钮
    ButtonBar: 按钮组
    FloatingActionButton:浮动按钮
    
    二、Flutter按钮组件中的一些属性:
    onPressed:必填参数,按下按钮时触发的回调,接受一个方法,传null表示按钮禁用,会显示禁用相关样式
    child:文本控件
    textColor:文本颜色
    color:按钮的颜色
    disabledColor:按钮禁用时的颜色
    disabledTextColor:按钮禁用时的文本颜色
    splashColor:点击按钮时水波纹的颜色
    elevation:阴影的范围
    padding:内边距
    shape:设置按钮的形状
    */

    Button.dart

    import 'package:flutter/material.dart';
    
    class ButtonDemoPage extends StatelessWidget {
      const ButtonDemoPage({Key key}) : super(key: key);
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
            appBar: AppBar(
              title: Text('按钮演示页面'),
              actions: <Widget>[
                IconButton(
                  icon: Icon(Icons.settings),
                  onPressed: () {},
                )
              ],
            ),
            body: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Row(
                  children: <Widget>[
                    RaisedButton(
                      child: Text('普通'),
                      onPressed: () {
                        print('普通按钮');
                      },
                    ),
                    SizedBox( 5),
                    RaisedButton.icon(
                      icon: Icon(Icons.search),
                      label: Text('图标'),
                      onPressed: null,
                    ),
                    SizedBox( 10),
                    RaisedButton(
                      child: Text('有颜色'),
                      color: Colors.blue,
                      textColor: Colors.white,
                      onPressed: () {
                        print('有颜色按钮');
                      },
                    ),
                    SizedBox( 10),
                    RaisedButton(
                        child: Text('有阴影'),
                        color: Colors.blue,
                        textColor: Colors.white,
                        elevation: 10,
                        onPressed: () {
                          print('有阴影按钮');
                        }),
                  ],
                ),
                SizedBox(height: 10),
                Row(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    Container(
                      height: 50,
                       400,
                      child: RaisedButton(
                        child: Text('宽度高度'),
                        color: Colors.blue,
                        textColor: Colors.white,
                        elevation: 20,
                        onPressed: () {},
                      ),
                    )
                  ],
                ),
                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('圆角按钮');
                      },
                    ),
                    RaisedButton(
                      child: Text('圆形按钮'),
                      color: Colors.blue,
                      textColor: Colors.white,
                      elevation: 20,
                      splashColor: Colors.grey,
                      shape: CircleBorder(side: BorderSide(color: Colors.white)),
                      onPressed: () {
                        print('圆形按钮');
                      },
                    )
                  ],
                ),
                FlatButton(
                  //扁平化按钮:
                  child: Text('扁平化的按钮'),
                  color: Colors.blue,
                  textColor: Colors.yellow,
                  onPressed: () {},
                ),
                OutlineButton(
                  child: Text('线框按钮'),
                  onPressed: () {
                    print('OutlineButton');
                  },
                ),
                Row(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    Expanded(
                      child: Container(
                        margin: EdgeInsets.all(20),
                        height: 50,
                        child: OutlineButton(
                          child: Text('注册'),
                          onPressed: () {},
                        ),
                      ),
                    )
                  ],
                ),
                Row(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    ButtonBar(
                      //按钮组
                      children: <Widget>[
                        RaisedButton(
                          child: Text('登录'),
                          color: Colors.blue,
                          textColor: Colors.white,
                          onPressed: () {},
                        ),
                        RaisedButton(
                          child: Text('注册'),
                          color: Colors.blue,
                          textColor: Colors.white,
                          onPressed: () {},
                        ),
                      ],
                    )
                  ],
                ),
                MyButton(
                  text: "自定义按钮",
                  height: 60.0,
                   100.0,
                  pressed: () {
                    print("自定义按钮");
                  },
                )
              ],
            ));
      }
    }
    
    //自定义按钮组件:
    class MyButton extends StatelessWidget {
      final text;
      final pressed;
      final double width;
      final double height;
      const MyButton(
          {this.text = '', this.pressed = null, this.width = 80, this.height = 30});
      @override
      Widget build(BuildContext context) {
        return Container(
          height: this.height,
           this.width,
          child: RaisedButton(
            child: Text(this.text),
            onPressed: this.pressed,
          ),
        );
      }
    }
  • 相关阅读:
    python基础--函数的命名空间and作用域
    MYSQL基础常识
    python基础--函数
    python基础--文件相关操作
    python基础--字符编码以及文件操作
    homebrew长时间停在Updating Homebrew 这个步骤
    python基础--数据类型的常用方法2
    python基础--数据类型的常用方法1
    python基础--定义装饰器(内置装饰器)
    angular创建组件
  • 原文地址:https://www.cnblogs.com/yiweiyihang/p/11512472.html
Copyright © 2011-2022 走看看