Flutter 中的按钮组件,RaisedButton,FlatButton,OutlineButton,IconButton,ButtonBar

Flutter 按钮组件

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

组件描述
RaisedButton凸起的按钮,其实就是Material Design风格的Button
FlatButton篇平化的按钮
OutlineButton线框按钮
IconButton图标按钮
ButtonBar按钮组件
FloatingActionButton浮动按钮

Flutter 按钮组件中的一些通用属性

属性名称值类型属性值
onPressedVoidCallback,一般接收一个方法必填参数,按下按钮时触发的回调,接收一个方法,传null表示按钮禁用,会显示禁用相关样式
childWidget文本控件
textColorColor文本颜色
colorColor按钮的颜色
disabledColorColor按钮禁用时的颜色
disabledTextColorColor按钮禁用时的文本颜色
splashColorColor点击按钮时水波纹的颜色
elevationdouble阴影的范围,值越大阴影范围越大
padding内边距
shape

设置按钮的形状

shape: RoundedRectangleBorder(

          borderRadius:BorderRadius.circular(10),

)

shape: CircleBorder(

      side: BorderSide(

           color:Colors.white,

       )

)

普通按钮

coding

import 'package:flutter/material.dart';
import 'package:flutterappbarapp/page/SearchPage.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Test Drawer',
      home: ScaffoldPage(),
    );
  }
}

class ScaffoldPage extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Drawer"),
      ),
      body: ButtonTest(),
    );
  }
}

class ButtonTest extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return  Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              RaisedButton(
                child: Text("普通按钮"),
                onPressed: (){//点击事件
                  print("普通按钮");
                },
              ),
              SizedBox(width: 30,),
              RaisedButton(
                child: Text("有颜色按钮"),
                color: Colors.blue,
                textColor: Colors.white,
                onPressed: (){
                  print("有颜色按钮");
                },
              ),
              SizedBox(width: 30,),
              RaisedButton(
                child: Text("有阴影按钮"),
                color: Colors.blue,//设置背景颜色
                textColor: Colors.white,
                elevation: 20,//设置阴影
                onPressed: (){
                  print("有阴影按钮");
                },
              )
            ],
          ),
        ],
      ),
    );
  }
}

设置宽高按钮,自适应按钮

import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:flutterappbarapp/page/SearchPage.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Test Drawer',
      home: ScaffoldPage(),
    );
  }
}

class ScaffoldPage extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Button"),
      ),
      body: ButtonTest(),
    );
  }
}

class ButtonTest extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return  Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Container(
                width: 200,
                height: 40,
                child: RaisedButton(
                  child: Text("设置宽高按钮"),
                  color: Colors.blue,
                  textColor: Colors.white,
                  elevation: 10,
                  onPressed: (){
                    print("设置宽高按钮");
                  },
                ),
              )
            ],
          ),
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Expanded(
                child: Container(
                  height: 40,
                  margin: EdgeInsets.all(20),
                  child: RaisedButton(
                    child: Text("自适应按钮"),
                    color: Colors.blue,
                    textColor: Colors.white,
                    elevation: 20,
                    onPressed: (){
                      print("自适应按钮");
                    },
                  ),
                ),
              )
            ],
          )
        ],
      ),
    );
  }
}

图片按钮

import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:flutterappbarapp/page/SearchPage.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Test Drawer',
      home: ScaffoldPage(),
    );
  }
}

class ScaffoldPage extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Button"),
      ),
      body: ButtonTest(),
    );
  }
}

class ButtonTest extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return  Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              RaisedButton.icon(
                  onPressed: (){
                    print("RaisedButton 图标按钮");
                  },
                  color: Colors.blue,
                  textColor: Colors.white,
                  icon: Icon(Icons.search),
                  label: Text("图标按钮"),
                  shape: RoundedRectangleBorder(//设置按钮的形状
                    borderRadius: BorderRadius.circular(10)
                  ),
              ),
            ],
          ),
        ],
      ),
    );
  }
}

圆形按钮

class ButtonTest extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return  Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Container(
                width: 100,
                height: 100,
                child:RaisedButton(
                  child: Text("圆形按钮"),
                  onPressed: (){
                    print("RaisedButton 图标按钮");
                  },
                  color: Colors.blue,
                  textColor: Colors.white,
                  elevation: 20,
                  shape: CircleBorder(
                    side: BorderSide(
                        color: Colors.white
                    ),
                  ),
                ),
              )
            ],
          ),
        ],
      ),
    );
  }
}

FlatButton 篇平化的按钮

class ButtonTest extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return  Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              FlatButton(
                child: Text("篇平化按钮"),
                onPressed: (){
                  print("篇平化按钮");
                },
              )
            ],
          ),
        ],
      ),
    );
  }
}

OutlineButton线框按钮

class ButtonTest extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return  Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              OutlineButton(
                child: Text("线框按钮"),
                color: Colors.blue,
                textColor: Colors.yellow,
                onPressed: (){
                  print("线框按钮");
                },
              )
            ],
          ),
        ],
      ),
    );
  }
}

IconButton图片按钮

class ButtonTest extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return  Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              IconButton(
                icon: Icon(Icons.settings),
                onPressed: (){
                  print("IconButton");
                },
              )
            ],
          ),
        ],
      ),
    );
  }
}

ButtonBar 按钮组件

class ButtonTest extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return  Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ButtonBar(
                children: [
                  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("点击注册");
                    },
                  ),
                ],
              )
            ],
          ),
        ],
      ),
    );
  }
}

Flutter FloatingActionButton介绍  通过FloatingActionButton实现闲鱼app底部凸起按钮

通过FloatingActionButton实现闲鱼底部凸起按钮

https://liwangjiang.blog.csdn.net/article/details/110008345

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

达帮主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值