Android开发Android开发经验谈程序员

Flutter Widget:实例讲解按钮组件 - Raised

2020-04-26  本文已影响0人  Carson带你学安卓

前言

Flutter 作为Google出品的一个新兴的跨平台移动客户端UI开发框架,正在被越来越多的开发者和组织使用,包括阿里的咸鱼、腾讯的微信等。

示意图

今天,我主要讲解Flutter中按钮方面的Widget,包括:

希望你们会喜欢。

示意图

1. RaisedButton

 const RaisedButton({
    Key key,
    @required VoidCallback onPressed, // 按下按钮的回调
    Widget child, // 子控件,一般是传入一个TextWidget
    Color textColor, // 文本颜色
    Color disabledTextColor, /// 禁用时文本的颜色
    Color color, // 按钮颜色
    Color disabledColor,// 禁用时的按钮颜色
    Color highlightColor, // 点击 / 长按的颜色
    Color splashColor, // 点击时水波纹颜色
    double elevation, // 阴影范围,值大 - 范围越大
    double highlightElevation,
    double disabledElevation,
    EdgeInsetsGeometry padding, // 内边距,接受的类型是:EdgeInsetsGeometry类型
    ShapeBorder shape, // 按钮形状,主要分为:BeveledRectangleBorder(带斜角的长方形边框)、CircleBorder(圆形边框)、RoundedRectangleBorder(圆角矩形)、StadiumBorder(两端是半圆的边框)
    Clip clipBehavior = Clip.none,
    MaterialTapTargetSize materialTapTargetSize,
    Duration animationDuration,
  })
/**
 *  导入库
 **/
import 'package:flutter/material.dart';// Material UI组件库

void main() => runApp(MyApp());

// 无状态控件显示
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
// 主界面入口返回的组件 = MaterialApp
    return MaterialApp(
      title: 'Widget_Demo', //标题
      theme: ThemeData(primarySwatch: Colors.blue), //主题色
      home: MyHomePage(), // 返回一个Widget对象,用来定义当前应用打开的时候,所显示的界面
    );
  }
}

// 返回的Widget对象
class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      //设置appbar
      appBar: new AppBar(
        title: new Text('Flutter Demo'),
      ),
      //主体
      body: new RaisedButton(
        color: Colors.red, // 按钮颜色
        splashColor: Colors.black, // 水波纹颜色
        highlightColor: Colors.green, // 长按样式
        textColor: Colors.white, // 文本颜色
        child: Text("RaiseButton"), // 按钮字样
        padding: EdgeInsets.fromLTRB(0,5,6,7),// 设置四个方向的内边距
        shape: RoundedRectangleBorder( // 设置按钮形状为圆角矩形
          borderRadius: BorderRadius.all(Radius.circular(10)),
        ),
        onPressed: _pressCallBack, // 点击事件
      ),
    );
  }

  _pressCallBack() {
    print("点击了按钮");
  }

}

2. FlatButton

import 'package:flutter/material.dart';// Material UI组件库

void main() => runApp(MyApp());

// 无状态控件显示
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
// 主界面入口返回的组件 = MaterialApp
    return MaterialApp(
      title: 'Widget_Demo', //标题
      theme: ThemeData(primarySwatch: Colors.blue), //主题色
      home: MyHomePage(), // 返回一个Widget对象,用来定义当前应用打开的时候,所显示的界面
    );
  }
}

// 返回的Widget对象
class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      //设置appbar
      appBar: new AppBar(
        title: new Text('Flutter Demo'),
      ),
      //主体
      body: new FlatButton(
        color: Colors.red, // 按钮颜色
        splashColor: Colors.black, // 水波纹颜色
        highlightColor: Colors.green, // 长按样式
        textColor: Colors.white, // 文本颜色
        child: Text("FlatButton"), // 按钮字样
        padding: EdgeInsets.fromLTRB(0,5,6,7),// 设置四个方向的内边距
        shape: RoundedRectangleBorder( // 设置按钮形状为圆角矩形
          borderRadius: BorderRadius.all(Radius.circular(10)),
        ),
        onPressed: _pressCallBack, // 点击事件
      ),
    );
  }

  _pressCallBack() {
    print("点击了按钮");
  }

}

3. OutlineButton

import 'package:flutter/material.dart';// Material UI组件库

void main() => runApp(MyApp());

// 无状态控件显示
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
// 主界面入口返回的组件 = MaterialApp
    return MaterialApp(
      title: 'Widget_Demo', //标题
      theme: ThemeData(primarySwatch: Colors.blue), //主题色
      home: MyHomePage(), // 返回一个Widget对象,用来定义当前应用打开的时候,所显示的界面
    );
  }
}

// 返回的Widget对象
class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      //设置appbar
      appBar: new AppBar(
        title: new Text('Flutter Demo'),
      ),
      //主体
      body: new OutlineButton(
        borderSide:new BorderSide(color: Colors.red), // 自定义边框颜色&样式
        splashColor: Colors.black, // 水波纹颜色
        highlightColor: Colors.green, // 长按样式
        textColor: Colors.red, // 文本颜色
        child: Text("OutlineButton"), // 按钮字样
        padding: EdgeInsets.fromLTRB(0,5,6,7),// 设置四个方向的内边距
        shape: RoundedRectangleBorder( // 设置按钮形状为圆角矩形
          borderRadius: BorderRadius.all(Radius.circular(10)),
        ),
        onPressed: _pressCallBack, // 点击事件
      ),
    );
  }

  _pressCallBack() {
    print("点击了按钮");
  }

}

4. IconButton

import 'package:flutter/material.dart';// Material UI组件库

void main() => runApp(MyApp());

// 无状态控件显示
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
// 主界面入口返回的组件 = MaterialApp
    return MaterialApp(
      title: 'Widget_Demo', //标题
      theme: ThemeData(primarySwatch: Colors.blue), //主题色
      home: MyHomePage(), // 返回一个Widget对象,用来定义当前应用打开的时候,所显示的界面
    );
  }
}

// 返回的Widget对象
class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      //设置appbar
      appBar: new AppBar(
        title: new Text('Flutter Demo'),
      ),
      //主体
      body: new IconButton(
        icon:Icon(Icons.add),
        color: Colors.blue, // 按钮颜色
        splashColor: Colors.black, // 水波纹颜色
        highlightColor: Colors.green, // 长按样式
        onPressed: _pressCallBack, // 点击事件
      ),
    );
  }

  _pressCallBack() {
    print("点击了按钮");
  }
}

5. 总结


请点赞!因为你们的赞同/鼓励是我写作的最大动力!

相关文章阅读
Android开发:最全面、最易懂的Android屏幕适配解决方案
Android开发:史上最全的Android消息推送解决方案
Android开发:最全面、最易懂的Webview详解
Android开发:JSON简介及最全面解析方法!
Android四大组件:Service服务史上最全面解析
Android四大组件:BroadcastReceiver史上最全面解析


欢迎关注Carson_Ho的简书!

不定期分享关于安卓开发的干货,追求短、平、快,但却不缺深度

上一篇下一篇

猜你喜欢

热点阅读