当前位置: 首页>移动开发>正文

flutter easy_refresh空组件 flutter组件大全


文章目录

  • 1. 重要概念
  • 2. 容器组件
  • 3. 图片组件
  • 4. 文本组件
  • 4.1 Text
  • 4.2 RichText
  • 5. 图标及按钮组件
  • 5.1 图标组件
  • 常用属性
  • 5.2 图标按钮组件
  • 常用属性
  • 5.3 凸起按钮组件
  • 常用属性
  • 6. 列表控件
  • 6.1 基础列表组件
  • 常用属性
  • 6.2 水平列表组件
  • 6.3 长列表组件
  • 7. 网格布局组件
  • 常用属性
  • 8. 表单组件
  • Form组件常用属性
  • TextFormField组件常用属性


1. 重要概念

一切皆组件flutter所有的元素都是由组件组成。比如一个布局元素、一个动画、一个装饰效果等。

2. 容器组件

容器组件Container包含一个子widget,自身具备alignment、padding等属性,方便布局过程中摆放child。

常用属性

属性名

类型

说明

key

key

Container唯一标识符,用于查找更新

alignment

AlignmentGeometry

控制child的对齐方式,如果Container或者Container的父节点尺寸大于child的尺寸,该属性设置会起作用,有很多种对齐方式

padding

EdgeInsetsGeometry

Decoration内部的空白区,如果有child,child位于padding内部

color

Color

用来设置Container背景色,如果foregroudDecoration设置的话,可能会覆盖color效果

decoration

Decoration

绘制在child后面的修饰,设置了Decoration的话,就不能设置color属性,否则会报错,此时应该在Decoration中进行颜色的设置

foregroundDecoration

Decoration

绘制在child前面的装饰

width

double

Container的宽度,设置为double.infinity可以强制在宽度上撑满,不设置,则根据child和父节点两者一起布局

height

double

Container的高度,设置为double.infinity可以强制在高度上撑满

constraints

BoxConstraints

添加到child上额外的约束条件

margin

EdgeInsetsGeometry

围绕在Decoration和child之外的空白区域,不属于内容区域

transform

Matrix4

设置Container的变换矩阵,类型为Matrix4

child

Widget

Container中的内容Widget

  • padding与margin的不同之处:padding是包含在Content内,而margin是外部边界。设置点击事件的话,padding区域会响应,而margin区域不会响应。

3. 图片组件

  • 图标 https://www.iconfont.cn/
  • 头像 https://www.randomuser.me/photos

图片组件Image显示图像的组件,有多种构造函数:

  • new Image:从ImageProvider获取图像
  • new Image.asset:加载资源图片
  • new Image.file:加载本地图片文件
  • new Image.network:加载网络图片
  • new Image.memory:加载Uint8List资源图片

常用属性

属性名

类型

说明

image

ImageProvider

抽象类,需要自己实现获取图片数据的操作

width/height

double

Image显示区域的宽度和高度设置,这里需要把Image和图片两个区分开。图片本身有大小,Image Widget是图片的容器,本身也有大小。宽度和高度的配置经常和fitshu’x

fit

BoxFit

图片填充模式,具体取值见 BoxFit取值表

color

Color

图片颜色

colorBlendMode

BlendMode

在对图片进行手动处理的时候,可能用到图层混合,如改变图片颜色,此属性可以对颜色进行混合处理,有多种模式

alignment

Alignment

控制图片的摆放位置,比如图片放置在右下角则为Alignment.bottomRight

repeat

ImageRepeat

此属性可以设置图片的重复模式。moRepeat为不重复,Repeat为x和y方向重复,repeatX为x方向重复,repeatY为y方向重复

centerSlice

Rect

当图片需要被拉伸显示时,centerSlice定义的矩形区域会被拉伸,可以理解为我们在图片内部定义9个点用作拉伸,9个点为"上",“下”,“左”,“右”,“上中”,“下中”,“左中”,“右中”,“正中”

matchTextDirection

bool

matchTextDirection与Derection配合使用。TextDirectio有两个值分别为:TextDirection.ltr从左到右展示图片,TextDirection.rtl为从右到左展示图片

gaplessPlayback

bool

当ImageProvider发生变化后,重新加载图片的过程中,原图片的展示是否保留。值为true则保留,值为false则不保留,直接等待下一张图片加载

BoxFit取值及描述

取值

描述

BoxFit.fill

全图显示,显示可能拉伸,充满

BoxFit.contain

全图显示,显示原比例,不需充满

BoxFit.cover

显示可能拉伸,可能裁剪,充满

BoxFit.fitWidth

显示可能拉伸,可能裁剪,宽度充满

BoxFit.fitHeight

显示可能拉伸,可能裁剪,高度充满

BoxFit.none

原始大小

BoxFit.scaleDown

效果和BoxFit.contain差不多,但是该属性不允许显示超过原图大小(可小不可大)

4. 文本组件

4.1 Text

文本组件Text负责显示文本和定义显示样式。

常用属性

属性名

类型

默认值

说明

data

String

数据为要显示的文本

maxLines

int

0

文本显示的最大行数

style

TextStyle

null

文本样式,可定义文本的字体大小、颜色、粗细等

textAlign

TextAlign

TextAlign.center

文本水平方向对齐方式,取值右center、end、justify、left、right、start、values

textDirection

TextDirection

TextDirection.ltr

有些文本书写方向从左到右,如英语、中文,有些则是从右到左,比如乌尔都语。从左到右使用TextDirection.ltr,从右到左使用TextDirection.rtl

textScaleFactor

double

1.0

字体缩放系数,比如设置为1.5,那么字体会放大1.5倍

textSpan

TextSpan

null

文本块,TextSpan里可以包含文本内容及样式

4.2 RichText

富文本组件RichText使用多个不同风格的widget显示文本,要显示的文本使用TextSpan对象树来描述,每个对象都有一个用于该子树的关联样式。文本可能多行,也可能显示在同一行,取决于布局约束。

常用属性

属性名

类型

默认值

说明

text

TextSpan

-

要显示的的文本

textAlign

TextAlign

TextAlign.start

文本水平方向对齐方式,取值右center、end、justify、left、right、start、values

textDirection

TextDirection

TextDirection.ltr

有些文本书写方向从左到右,如英语、中文,有些则是从右到左,比如乌尔都语。从左到右使用TextDirection.ltr,从右到左使用TextDirection.rtl

softWrap

bool

true

是否自动换行

overflow

TextOverflow

TextOverflow.clip

内容超出文本范围处理方式,默认截断处理

textScaleFactor

double

1.0

文本缩放比例,默认100%比例显示

maxLines

int

-

最大显示行数

5. 图标及按钮组件

5.1 图标组件

图标组件Icon展示图标的组件,该组件不可交互,要实现交互图标,可以考虑使用IconButton组件。图标相关组件有以下几个:

  • IconButton:可交互的Icon
  • Icons:框架自带Icon集合
  • IconTheme:Icon主题
  • ImageIcon:通过AssetImages或者其他图片显示Icon
常用属性

属性名

类型

默认值

说明

color

Color

null

图标的颜色,例如Colors.green[500]

icon

IconData

null

展示的具体图标,可使用Icons图标列表中的任意一个图标即可,如Icons.phone表示一个电话的图标

style

TextStyle

null

文本样式,可定义文本的字体大小、颜色、粗细等

size

Double

24.0

图标的大小,注意需要带上小数位

textDirection

TextDirection

TextDirection.ltr

Icon组件里也可以添加文本内容。有些文本书写的方向是从左到右,有些则是从右到左。从左到右使用TextDirection.ltr,从右到左使用TextDirection.rtl

5.2 图标按钮组件

图标按钮组件IconButton是基于Meterial Design风格的组件,可以响应按下的事件,并且按下时带水波纹效果。如果它的onPressed回调函数为null,那么这个按钮处于禁用状态,并且不可按下。

常用属性

属性名

类型

默认值

说明

alignment

AlignmentGeometry

Alignment.center

定义IconButton的Icon对齐方式,默认为居中。Alignment可以设置x,y的偏移量

icon

Widget

null

展示的具体图标,可以使用Icons图标列表中任意一个图标即可,如Icons.phone表示一个电话图标

color

Color

null

图标组件的颜色

disabledColor

Color

ThemeData.disabledColor

图标组件禁用状态的颜色,默认为主题里的禁用颜色,也可以设置为其他颜色

iconSize

double

24.0

图标的大小,注意需要带上小数点

onPressed

VoidCallback

null

当按钮按下时会触发此回调事件

tooltip

String

“”

当按钮长按下时的提示语句

5.3 凸起按钮组件

凸起按钮组件RaisedButton是Material Design中的button,一个凸起的材质矩形按钮,它可以响应按下事件,并且按下时会带一个触摸效果。

常用属性

属性名

类型

默认值

说明

color

Color

null

组件的颜色

disabledColor

Color

ThemeData.disabledColor

组件禁用状态的颜色,默认为主题里的禁用颜色,也可以设置为其他颜色

onPressed

VoidCallback

null

当按钮按下时会触发此回调事件

child

Widget

-

按钮的child通常为一个Text文本组件,用来显示按钮的文本

enable

bool

true

按钮是否为禁用状态

6. 列表控件

列表是最常见的需求。在Flutter中,用ListView来显示列表项,支持垂直和水平方向展示,通过一个属性我们就可以控制其方向,列表有以下几类:

  • 水平的列表
  • 垂直的列表
  • 数据量非常大的列表
  • 矩阵式的列表

6.1 基础列表组件

基础列表组件为ListView组件。

常用属性

属性名

类型

默认值

说明

scrollDirection

Axix

Axis.vertical

列表的排列方向,Axis.vertical为垂直方向,是默认值,Axis.horizontal为水平方向

padding

EdgInsetsGeometry

-

列表内部的空白区域,如果有child,child位于padding内部

reverse

bool

false

组件排列方向

children

List<Widget>

-

列表元素,注意List元素全部为Widget类型

6.2 水平列表组件

水平列表组件即为水平方向排列的组件,列表内部元素以水平方向排列。把ListView组件的scrollDirection属性设置为Axis.horizontal即可。

6.3 长列表组件

当列表的数据项非常多时,需要使用长列表,比如淘宝后台订单列表、手机通讯录等,这些列表项数据很多。长列表也是使用ListView作为基础组件,只不过需要添加一个列表项构造器itemBuilder。

7. 网格布局组件

网格布局组件GridView可以实现多行多列布局的应用场景。使用GridView创建网格列表有多种方式:

  • GridView.count:通过单行展示个数创建
  • GridView.extent:通过最大宽度创建

常用属性

属性名

类型

默认值

说明

scrollDirection

Axix

Axis.vertical

滚动的方向,Axis.vertical为垂直方向,是默认值,Axis.horizontal为水平方向

reverse

bool

false

默认是从上或者左,向下或者右滚动的,这个属性控制是否反向,默认值为false

controller

ScrollController

-

控制child滚动时的位置

primary

bool

-

是否是父节点的PrimaryScrollController所关联的主滚动视图

phisics

ScrollPhysics

-

滚动的视图如何响应用户的输入

shrinkWrap

bool

false

滚动方向的滚动视图内容是否应该由正在查看的内容所决定

padding

EdgInsetsGeometry

-

四周的空白区域

gridDelegate

SliverGridDelegate

-

控制GridView中子节点布局的delegate

cacheExtent

double

-

缓存区域

8. 表单组件

表单是一个包含表单元素的区域。表单元素允许用户输入内容,比如文本域,下拉列表,单选框,复选框等。常见应用场景有:登录、注册、输入信息等。表单里有两个重要的组件,一个是Form组件,用来左整个表单提交使用的;另一个是TextFormField组件,用来做用户输入的。

Form组件常用属性

属性名

类型

说明

key

Key

组件在整个Widget树中的key值

autovalidate

bool

是否自动提交表单

child

Widget

组件child只能有一个子组件

onChanged

VoidCallback

当FormField值改变时的回调函数

TextFormField组件常用属性

属性名

类型

说明

autovalidate

bool

自动验证值

initialValue

T

表单字段初始值

onSaved

FormFieldSetter<T>

当Form表单调用保存方法Save时,回调的函数

validator

FormFieldValidate<T>

Form表单验证器



https://www.xamrdz.com/mobile/46c1930627.html

相关文章: