Flutter MaterialButton


简介

用于构建一个依赖于ButtonThem 和 Theme的按钮widget

  • 如果有必要,按钮的大小是自是适配于其子widget的
  • 最好不要直接使用这个widget,而应该可以考虑使用FlatButton、OutlineButton或者RaiseButton,他们包含一些和主题风格相适配的一些基础样式
  • 如果要直接创建按钮而不继承主题默认值,可以考虑使用 RawMaterialButton
  • 如果想使用ink-splash的效果但是又不想使用button,可以考虑使用InkWell

基本用法

尽量不要直接使用 MaterialButton

  • 如果 MaterialButton上的onPress为null,则按钮处于被禁用状态
  • IconButton 可以创建一些带有 图标的按钮

实例演示

import 'package:flutter/material.dart';

class MaterialButtonDemo extends StatelessWidget {
  final TextStyle txtStyle = TextStyle(color: Colors.white);

  @override
  Widget build(BuildContext context) {
    return Container(
      child: Column(
        children: <Widget>[
          MaterialButton(
            onPressed: () {
              print('click MaterialButton');
            },
            child: Text(
              'MaterialButton',
              style: txtStyle,
            ),
            color: Theme.of(context).primaryColor,
          ),
          FlatButton.icon(
            icon: Icon(
              Icons.bubble_chart,
              color: Colors.white,
            ),
            label: Text(
              'FlatButton',
              style: txtStyle,
            ),
            onPressed: () {
              print('click FlatButton');
            },
            color: Theme.of(context).primaryColor,
          ),
          RaisedButton(
            onPressed: () {
              print('click RaisedButton');
            },
            child: Text('RaisedButton'),
          )
        ],
      ),
    );
  }
}