美文网首页
flutter 按钮组件详解

flutter 按钮组件详解

作者: 浩仔_Boy | 来源:发表于2020-11-23 20:10 被阅读0次

按钮组件详解

import 'package:flutter/material.dart';

/*
 *flutter 按钮组件详解 
 */
void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: "按钮组件",
      home: Scaffold(
        appBar: AppBar(
          title: Text("按钮组件"),
        ),
        body: HomeContext(),
      ),
    );
  }
}

//自定义的Widget
class HomeContext extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Button();
  }
}

//按钮练习,Flutter里分为4个按钮 FloatingActionButton,RaisedButton,FlatButton,OutlineButton
class Button extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Padding(
      ///不想让他靠边,所以加了个padding
      padding: const EdgeInsets.all(8.0),
      child: Column(
        children: <Widget>[
          Row(
            mainAxisAlignment: MainAxisAlignment.center, //主轴(水平)对齐
            children: <Widget>[
              Container(
                ///由于按钮无法设置大小,想要设置按钮的大小就需要在按钮外面包围一个container
                ///设置这个containet的宽度和高度,里面的按钮会自动填充containet
                height: 50,
                width: 320,
                child: RaisedButton(
                  child: Text("自定义宽高带阴影按钮"),
                  onPressed: () {
                    print("自定义宽高带阴影按钮被点击了");
                  },
                  color: Colors.red, //按钮的背景颜色
                  textColor: Colors.white, //字体颜色
                  elevation: 10.0, //阴影
                ),
              ),
            ],
          ),
          SizedBox(
            height: 10,
          ),
          Row(
            children: <Widget>[
              Expanded(
                ///这个是一个自适应按钮,他会根据屏幕的大小自动适应,只需要在按钮外面增加一个Expanded即可
                ///如果想改变他的高度可以在Expanded里面在防止一个container设置他的高度即可
                ///这里要注意,如果用的是row布局,你们他的自适应方向是水平的,如果用的是columu布局他的方向就是垂直的自适应
                child: Container(
                  height: 50, //按钮的高度
                  child: RaisedButton(
                    child: Text("自适应按钮"),
                    onPressed: () {
                      print("自适应按钮被点击了");
                    },
                    color: Colors.red, //按钮的背景颜色
                    textColor: Colors.white, //字体颜色
                    elevation: 10.0, //阴影
                  ),
                ),
              ),
            ],
          ),
          SizedBox(
            height: 10,
          ),
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              RaisedButton.icon(
                ///带图标的按钮 注意格式的RaisedButton.icon
                icon: Icon(Icons.search),
                label: Text("带图标的按钮"),
                color: Colors.red, //按钮的背景颜色
                textColor: Colors.white, //字体颜色
                elevation: 10.0, //阴影
                onPressed: () {
                  print("图标按钮被点击了");
                },
              ),
            ],
          ),
          SizedBox(height: 50),
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              RaisedButton(
                child: Text("带圆角的按钮"),
                onPressed: () {
                  print("圆角按钮被点击了");
                },
                color: Colors.red, //按钮的背景颜色
                textColor: Colors.white, //字体颜色
                elevation: 10.0, //阴影
                shape: RoundedRectangleBorder(
                    //设置圆角
                    borderRadius: BorderRadius.circular(10)),
              ),
            ],
          ),
          SizedBox(height: 50),
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Container(
                height: 80, //设置圆形按钮的大小
                child: RaisedButton(
                  child: Text("圆形按钮"),
                  onPressed: () {
                    print("圆形按钮被点击了");
                  },
                  color: Colors.red, //按钮的背景颜色
                  textColor: Colors.white, //字体颜色
                  elevation: 10.0, //阴影
                  splashColor: Colors.blue, //点击后的水波纹的颜色一般不改这里知道就可以了
                  shape: CircleBorder(
                      //设置 圆形
                      side: BorderSide(
                          //默认圆形的变宽为黑色
                          color: Colors.white //所以要在这里设置下边框颜色
                          )),
                ),
              ),
            ],
          ),
          SizedBox(height: 50),
          FlatButton(
            ///扁平化按钮,和上面的突起按钮用法一样,只是展示效果不一样而已
            child: Text("FlatButton"),
            onPressed: () {
              print("FlatButton被点击了");
            },
          ),
          SizedBox(
            height: 10,
          ),
          OutlineButton(
            //带边框的按钮,用法和突起按钮一样
            child: Text("OutlineButton"),
            onPressed: () {
              print("OutlineButton被点击了");
            },
          ),
          SizedBox(
            height: 10,
          ),
          FloatingActionButton(
            child: Text("FloatingButton"),
            onPressed: () {
              print("FloatingButton被点击了");
            },
          ),
          SizedBox(
            height: 10,
          ),
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ButtonBar(
                children: [
                  RaisedButton(
                      child: Text('登录'),
                      color: Colors.blue,
                      textColor: Colors.white,
                      onPressed: () {
                        print('登录');
                      }),
                  RaisedButton(
                      child: Text('注册'),
                      color: Colors.blue,
                      textColor: Colors.white,
                      onPressed: () {
                        print('注册');
                      })
                ],
              )
            ],
          )
        ],
      ),
    );
  }
}

相关文章

网友评论

      本文标题:flutter 按钮组件详解

      本文链接:https://www.haomeiwen.com/subject/pwgviktx.html