跳转至

Android组件

material 风格组件

import 'package:flutter/material.dart';


MaterialApp

MaterialApp(
  debugShowCheckedModeBanner: false,  // Debug 关闭
  title: 'Welcome to Flutter',
  theme: ThemeData()  // 主题
  home: Scaffold()  // 主体
)

ThemeData

主题配色

ThemeData(
    primarySwatch: Colors.blue,  // 主配色
)

Scaffold

Scaffold 它提供了默认的导航栏、标题和包含主屏幕 widget

Scaffold(
    appBar: AppBar()  // 导航
    drawer: Drawer()  // 左侧抽屉
    body: 主体 
    floatingActionButton: FloatingActionButton()  // 右下角按钮 允许放其他组件
    extendBodyBehindAppBar: false,  // 是否允许AppBar透明
),

Drawer

左侧抽屉

演示
Drawer(
  // Add a ListView to the drawer. This ensures the user can scroll
  // through the options in the drawer if there isn't enough vertical
  // space to fit everything.
  child: ListView(
    // Important: Remove any padding from the ListView.
    padding: EdgeInsets.zero,
    children: [
      const DrawerHeader(
        decoration: BoxDecoration(
          color: Colors.blue,
        ),
        child: Text('Drawer Header'),
      ),
      Text('1'),
      Text('2')
    ],
  ),
),

AppBar

顶部

AppBar(
    leading: const IconButton()  // 左侧
    title: Text()  // 标题 中间位置
    actions: [IconButton(), IconButton()],  // 右侧
    elevation: 0.0,  // 阴影
    centerTitle: true,  // 居中
),

Divider

分割线

Divider()

按钮

参数 描述
child 组件 一般放Text()
onPressed 点击
onLongPress 长按
style 样式 放ButtonStyle()

ElevatedButton

普通按钮

OutlinedButton

轮廓按钮

TextButton

文本按钮

ButtonStyle

按钮样式


IconButton

图标按钮

参数 描述
tooltip 长安提示文本
IconButton(
  onPressed: () {  },
  icon: Icon(Icons.access_alarms_rounded),
),

FloatingActionButton

悬浮按钮

参数 描述
child 组件 一般放Text()
tooltip 长安提示文本
elevation 阴影

加载效果

CircularProgressIndicator

CircularProgressIndicator()

Text

Text(
    '内容',
    style: TextStyle(),  // 样式
    textDirection: TextDirection.ltr,  // 文本方向
    textAlign: TextAlign.center,  文本对齐
    maxLines: 3,  // 行数
    overflow: TextOverflow.ellipsis,  // 溢出方式
)

CircleAvatar

头像

代码
CircleAvatar(
  child: Text('我'),
  backgroundImage: AssetImage('assets/image/01.jpeg'),  // 图片
  backgroundColor: Colors.blueGrey,  // 颜色
  radius: 20,  // 大小
)

图片

参数 描述
width 宽度
height 高度
参数

fit 显示方式

fit: BoxFit.cover 覆盖

Image.asset

显示本地图片

Image.asset('assets/image/01.jpeg')

Image.network

网络图片

Image.network('URL')

Icon

图标

Icon(Icons.图标名称, size: 30,)

Chip

标签

Chip(
  label: Text('茶花'),
  avatar: Icon(Icons.add_location),  // 图标或头像
)

AlertDialog

提示框

AlertDialog(
  title: Text('标题'),
  content: Text('提示内容'),
    actions: [  
      // 一般放按钮
    ]
)

TextField

输入框

参数 描述
autofocus 是否 获取焦点
keyboardType 键盘类型
maxLength 最多输入
obscureText 是否 密码形式
maxLines 最多几行
onChanged 输入事件
decoration 样式
onChanged
onChanged: (value) {
    // 执行代码
},
decoration
InputDecoration(
    prefix: Icon(Icons.mobile_screen_share),  // 图标
    label: Text('手机号'),  // 标题
    hintText: '请输入手机号',  // 提示
    // 获取焦点 样式
    focusedBorder: UnderlineInputBorder(
        borderSide: BorderSide(color: Colors.lightGreen),
    ),
    // 未获取焦点 样式
    enabledBorder: UnderlineInputBorder(
        borderSide: BorderSide(color: Colors.deepOrangeAccent),
    ),
    hintStyle: TextStyle()  // 提示文本样式
)

Placeholder

占位 代表还未实现


Divider

分割线

参数 描述
thickness 厚度
color 颜色

TextField

文本域

参数 描述
onTap 点击
autofocus 是否获取焦点
decoration 样式 InputDecoration

InputDecoration 样式

InputDecoration(
    // 边框
    enabledBorder: OutlineInputBorder(
      // 边角
      borderRadius: BorderRadius.all(
        Radius.circular(10),
      ),
      // 边框线
      borderSide: BorderSide(
        color: Color(0xfff4f6fa), // 边线颜色
        width: 1.5, // 粗细
      ),
    ),
    // 被选中样式
    focusedBorder: OutlineInputBorder(
        // 边框线
        borderSide: BorderSide(
          color: Color(0xfff4f6fa), //边框颜色为绿色
          width: 1.5, //宽度为5
        )
    ),
    // 填充颜色
    fillColor: Color(0xfff4f6fa),
    // 是否启动 填充颜色
    filled: false,
    // 标签文本 选中后会移到上方
    labelText: "用户名",
    // 提示文本 在下方显示
    helperText: "用户名或邮箱",
    // 提示文本 在输入框内显示 输入后消失
    hintText: "邮箱或ID",
    // 错误提示文本 在下方显示
    errorText: "errorText",
    // 图标
    prefixIcon: Icon(Icons.perm_identity),
)

输入框改变时

onChanged: (value){
    print('你输入的内容为$value');
}