各种widget列表:

MaterialApp类:MaterialApp:代表Material设计风格的应用,添加了特定风格的属性。title, theme, color, home, routes, inititalRoute, onGenerateRoute, localizationDelegates, locale, MaterialColor:MaterialButton:RawMaterialButton:基于Semantics, Material, InkWell 控件。padding, child, constraint, materialTapTargetSize, onPress,MaterialPageRoute:MaterialAccentColor:MergeableMaterialItem:

Bar类:

AppBar:应用栏,由工具栏组成。或者工具栏和其他widget组合形成的。例如TabBar和FlexibleSpaceBar。title, bottom(顶部导航TabBar), 通常用于Scaffold.appBar属性。SliverAppBar:类似Android Toolbar滑动头部。应用栏。AppBar位置固定最上面,SliveAppBar可以随内容滚动的。leading:返回图标。BottomAppBar:底部应用栏。通常与Scaffold.bottomNavigationBar一起使用的容器。可以在顶部有一个凹口为FloatingActionButton腾出空间。BottomNavigationBarItem:底部导航应用栏SnackBar:ScrollbarPainter:用于绘制滚动条的CustomPainter,只有shouldRepaint返回true时才绘制。FlexileSpaceBar:ButtonBar:末端对齐的按钮容器,SnackBarAction:TabBar:(配合导航类的Tab),常用的横向标签,实现并行界面的横向滑动展示,通常会在AppBar的底部部分结合TabBarView来使用TabBar。tabs, controller, isScrollable, indicatorColor, indicatorWeight, indicatorPadding, labelColor, labelStyle, unselectedLabelColor, onTap。

Dialog类:

AlertDialog:Dialog:AboutDialog:SimpleDialog:

Scaffold类:

Scaffold:实现基本的MaterialDesign布局结构。appBar:显示顶部AppBar,body:当前界面显示的主要内容WIdget。floatingActionButton:界面的主要功能按钮,floatingActionButtonLocation:(FloatingActionButtonLocation.endDocked),persistentFooterButtons:固定在下方显示的按钮,drawer:侧边栏控件,backgroundColor:内容的背景颜色(默认ThemeData.scaffoldBackgroundColor的值),bottomNavigationBar:显示在页面底部的导航栏。ScaffoldState:Scaffold的state对象,用来控制SnackBars和BottomSheets和Drawer的显示隐藏。

Scroll类:

ScrollView:属于抽象类,不能直接实例化。scrollable的(ListView, PageView, GridView, CustomScrollView, SingleChildScrollView, ScrollNotification)。Scrollable:不包含UI逻辑,很难直接构造。SingleChildScrollView:只有一个可滑动的子widget的ScrollView.ScrollNotfication, NotificationListener:可以用在不使用ScrollController的情况下查看滚动位置的widget. onNotification.ScrollbarPainter:绘制滑动条的CustomPainter。shouldRepaint返回true时。不使用时调用dispose。ScrollMetrics:抽象类,包含当前ViewPort及滚动位置等信息。pixel,maxScrollExtent,extentInside,extentAfter,atEdge.ScrollPhysics:确定混动组件的物理属性。BoxScrollView:使用单个子布局模型的ScrollView.(ListView线性,GridView使用二维布局,CustomScrollView多个布局)。CustomScrollView:一个使用Slivers来创建各种自定义滚动效果的ScrollView.可展开的头部配合SliverAppBar, SliverList, SliverGrid.NestedScrollView:可以嵌套在另一个滚动视图中的ScrollView本质上,他们滚动是连接着的。常见的包含一个SliverAppBar, 并且包含TabBar和TabBarView。headSliverBuilder: 构造出来一个包含TabBar的SliverAppBar,并且body中包含TabBarView。controller , physics, body.

Grid类:

GridTile:GridList的一种组件,包含head,body,footer。GridView:滚动列表。scrollDirection:滚动方向,reverse:是否反向,controller:控制child滚动时候的位置,cacheExtent:缓存区域,gridDelegate:控制GridView子节点布局的delegate.四种构造方法:GridView.builder,GridView.custom,GridView.count,GridView.extent。GridPaper:SliverGrid:将多个item以每行两个的形式,进行排列。GridTileBar:

列表类:

AnimatedList:”动画滚动容器”,插入和移除项目时设定动画。ListView:(extend BoxScrollView,BoxScrollView extend ScrollView)”滚动列表”,跟GridView相似,基本上一个slivers只包含一个SliverList的CustomScrollView。scrollDirection:Axis.horizontal。几种构造方式:List,ListView.builder,ListView.separated,ListView.custom。把数据Iterable添加到列表中,ListTile.divideTitles。ListView.builder,设置单个item属性,懒加载。itemBuilder: ,itemCount:, .ListBody:列表组件。给定轴方向,按照顺序排列子节点。ExpansionPanelList:PageView:可滚动的视图列表,每个子widget都是视图窗口的大小, controller。

frame布局类:

Align:对齐控件,将子控件指定方式对齐,根据子控件调整自己大小,alignment:bottomRight,center,bottomLeft,topLeft。widthFactor,hightFactor匹配对应尺寸,长宽比例。Stack:多个childs相对于其框的边缘定位,用于简单重叠children,alignment:默认右上角,center。fit:loose放开宽高约束,expand子节点最大可能的占用空间,允许的最大大小,passthrough不改变子节点约束。textDirection文本方向。overflow超过部分是否剪裁掉,clip/visible。IndexdStack:显示一个子项列表的单个子项。显示指定位置widget,给出索引选择出widget,value==null不显示任何内容。index显示child的索引,通过多个图片切换可以表示状态。Row:填充可用的横向水平空间,一行的高度是childs的最大高度。mainAxisSize:默认max,mainAxisAlignment:children放置在主轴某位置,CrossAxisAlignment属性设定位置交叉对齐。Column:将child显示在竖直方向数组的widget,和Row相对。竖直很多无法滚动,可以配合listView使用。mainAxisSize , mainAxisAlignment , CrossAxisAlignment:center/end/start。Container:矩形视图,BoxDecoration可以有边框或者阴影。结合常见绘画,定位和大小调整。让child填充绘制(然后绘制前景),然后将其他约束应用到填充范围。没有child则会尽可能大,除非被width,height约束。margin, alignment: Alignment.topLeft , decoration:可以使用空间等作为背景, Center:放置中心,如果受到外界约束,widthFactor,heightFactor为null,则会尽可能大。不受外界约束,相应大小为null,则匹配child大小。ConstrainedBox:添加额外的条件在child上。OverflowBox:对child施加约束不同于获得的约束,可能允许child溢出父控件的空间。DecoratedBox:child绘制前,或者绘制后,添加额外的限制条件到child widget上。decoration,position。RendorDecoratedBox:FittedBox:根据自己需要,对child进行缩放和定位。boxfit,alignment,LimitedBox:对最大宽高进行限制的控件,前提是LimitedBox不受约束。RotatedBox:将child旋转整数的1/4。SizedBox:一个具有制定大小的盒子。SizedBox.expand(); SizedBox.shrink(); SizedBox.fromSize();SizeOverflowBox:特定大小的widget,但将其原始约束传递给它的子节点,可能溢出。alignment , size .UnconstrainedBox:一个试图让child在没有约束的情况下绘制的容器。alignment ,textDirection ,constrainedAxis。Expanded:用于撑开布局子组件的widget,用于在Row,Column,Flex子组件内。占满所有可用空间。Padding:widget内边距,Container+padding=Padding。SliverPadding:是Slivers大家族中的一个,配合各种Sliver成员使用。作用于每一个item。AnimatedPadding:动画成员的一部分,动画版本的padding。Table:多列多行的需求,columnWidth.Card:卡片。shape:RoundedRectangleBorder,elevation,margin,color, child.

form类:

TextField:文本输入框,修改时onchange被调用。获得最新的文本信息。输入完毕onSubmitted 被调用。decoration属性控制样式,添加标签或图标。Checkbox:复选框,发生变化,onchange被调用。单个选择,一组单选。CheckboxListTile:下拉复选框,带有复选框的ListTitle,与checkbox类似onChanged , activeColor , title , subtitle , isThree Line , dense.FlatButton:显示在material widget上的文本标签,零高程,不可见边框,onPress==null责备禁用,disableColor,icon,可以用 ButtonTheme覆盖,clipBehavior不能为空RaisedButton : 凸起的按钮,icon,onpress,shape更改边框样式和圆角,IconButton:通过填充颜色对点击做出反应,通常用在AppBar.actions。PopupMenuButton:提供提供菜单栏弹出对话框的按钮。选项被点击调用onSelected, initialValue初始值,单项有icon,enabled值。通常配合PopupMenuItem。itemBuilder。FloatingActionButton:浮动动作按钮,常用在Scaffold.floatingActionButton字段中,FAB三种类型regular,mini,extended.onPress==null,则不可用不会变灰色。可更改边框,点击效果,内容文字,颜色,圆角。RawMaterialButton:raw material 按钮,基于Sematics,Material,Inkwell创建的按钮。DropdownButton:用于项目列表中进行选择的按钮,OutlineButton:边框按钮,RaisedButton和FlatButton之间的交叉,一个有边框的按钮。Text:单一样式文本,接近DefaultStyle,重新设置样式DefaultStyle.inherit为false,data文本内容,textAlign对齐方式,maxLines最大行数,overflow文本截断方式,textScaleFactor文本缩放比例,style颜色字体粗细背景。RichText:具有复杂样式的文本显示组件,富文本展示不同风格文本widget.Text或Text.rich都是从RichText构建出来的。TextSpan显示不同样式。Radio:material design风格的单选按钮,groupValue代表选中项,activeColor激活时的颜色,onChanged改变时触发,value单选的值。RadioListTile:单选按钮附文字label.单击文字同单击radio.Slider:进行范围选择的控件,数据可连续可非连续,在最大值和最小值之间,thumb滑块 track滑轨 value indicator值指示器 active选中区 inactive非选中区。SliderTheme定制复杂样式。SliderTheme:用来改变Slider样式的上层部件。用来改变Slider样式的上层部件。更改sliderTheme.data修改Slider总体样式。SliderThemeData:sliderTheme.data = SliderThemeData(), data的修饰属性。Switch:切换按钮组件,使用Switch子类adaptive修改成iOS风格,activeColor,activeThumbImage激活时按钮的图像,activeTrackColor:按钮激活滑轨颜色,inactiveThumbColor,inactiveThumbImage,inactiveTrackColor.SwitchListTile:Switch的一个衍生组件。支持各种自定义样式,附带文字和图标。AnimatedSwitcher:渐变切换的组件,有动画效果。

Media类:

AssetImage:从AssetBundle中获取图像,根据上下文来确定使用的确切图像。DecorationImage:修饰Box的图片,一般配合BoxDecoration的img 属性. 也可以配合paintImage使用。fit:BoxFit.cover;ExactAssetImage:类似带有scale属性的AssetImage。可以理解为带有scale的AssetImage.FadeInImage:占位图 placeHolder —> image目标图片的一种过渡widget。fadeOutDuration,fadeOutCurve控制placeholder的动画, image:NetworkCacheImage(image)。FadeInImage.memoryWork();FileImage:用来展示本地文件,将FIle对象解码为图片,指定scale。Image.file是ImageFile的简写形式。NetworkImage:展示网络图片的widget,Image.network是提供的简写形式。RawImage:直接显示dart:ui.Image的widget。很少使用。通过paintImage绘制出来的。MemoryImage:将给定的Uint8List缓冲区解码为图像的widget. ImageProvider。Image:用来展示Image. instantiateImageCodec。绘制使用 Canvas.drawImage. //Image.asset, Image.network, Image.file, Image.memory.。

Icon:使用IconData描述的字体绘制图形图标。`

ImageIcon:来自ImageProvider的图标,例如AssetImage.IconTheme:用于应用栏图标的颜色,不透明度和大小。backgroundColor, brightness, textTheme.IconData:字体表示符合表示的图标说明,IconThemeData:为图标提供的属性,必须是Icon的父级。IconTheme.of,opacity属性透明度。Canvas:操作图形的界面,可以与SceneBuilder一起用来构建场景。PainterSketch:操作图形的界面,canvas+paint+GestureDetector实现一个简单画板。PainterPath:在canvas上绘制图案。*CircleProgressBarPainter:操作图形的界面。使用canvas+Animation实现。

导航navigation类:

BottomNavigationBarItem:底部导航应用栏,嵌套使用。BottomNavigationBar:”底部导航栏”,通常和Scaffold结合使用。作为Scaffold.bottomNavigationBar参数。Tab:s属于Material风格的widget.配合TabBarView使用。TabController协调TabBarView和Tab之间选择和个数等。CheckedPopupMenuItem:DropdownMenuItem:PopupMenuBottom:PopupMenuDivider:PopopMenuEntry:PopupMenuItem:

Pick类:

DayPicker:MonthPicker:YearPicker:ShowdatePicker:CityPicker:

Chip类:

Chip:ChipTheme:ChipThemeData:ChoiceChip:FilterChip:InputChip:RawChip:ClipOval:子控件裁切容器,/ClipRect, /ClipRRect, /ClipPath, /CustomClipper.  BorderRadius, child.

Progress类:

CircularPercentIndicator:LinearProgressIndicator:* NestedScrollViewRefreshIndicator:类似SwipeRefreshLayout。key, child, onRefresh, .

decoration类:

BoxDecoration:image(背景图), color(背景色), borderRadius(直线的圆角,包含四个), border(外框), shape(框形状), gradient(渐变色), boxShadow,.ShapeDecoration:InkDecoration:FlutterLogoDecoration:InputDecoration:TextDecoration:

shape类:

shape : RoundedRectangleBorder, BoxShape(BoxShape.circle), CircleBorder, .

**************

Cupertino类:

CupertinoApp:CupertinoButton:CupertinoColors:CupertinoIcons:CupertinoNavigationBar:CupertinoPageRoute:CupertinoPageScaffold:CupertinoPicker:CupertinoPopupSurface:CupertinoScrollbar:CupertinoSlider:CupertinoSegmentedControl:CupertinoSliverNavigationBar:CupertinoSwitch:CupertinoTabBar:CupertinoTabScafold:CupertinoTabView:CupertinoTimerPicker:

Sliver系列:

SliverAppBar:title, pinned, floating, snap, elevation.SliverFixedExtentList:SliverList:delegate, childCount, SliverGrid:SliverGrid.count(), SliverGrid.extent(), SliverGrid(), crossAxisCount, maxCrossAxisExtent:SliverPersistentHeader:pinned, floating, 滑动时具有动态大小。delegate, 集成SliverPersistentHeadDelegate实现,覆载minExtent, maxExtent, shouldBuild, snapConfiguration。pinned:当达到最小时是否固定头部。SliverFixedExtentList:SliverToBoxAdapter:组合视图,放在CustomListVIew 中,

Localizations : Localizations.override(locale:**,child**),包裹响应多语言改变

Semantics:

Label:

Positioned:

Ink:

InkWell:

ViewController:

Drawer:

Divider:直线

GestureDetector:处理手势识别,非空回调,fit parent.onTap,

FocusScope: FocusScope.of(context).requestFocus(new FocusNode());

WillPopScope:用户退出界面时的回调

SafeArea:安全区,防止overFlow现象

Transform: Transform.translate(),


应用中的组合:

刷新列表:

NestedScrollViewRefreshIndicator(onRefresh)  -> NestedScrollView(headerSliverBuilder) -> NotificationListener(onNotification)  -> ListView(itemCount,itemBuilder).

RefreshIndicator(onRefresh) -> ListView(itemCount,itemBuilder,controller).


屏幕宽度高度:MediaQuery.of(context).size.width

MediaQuery.of(context).size.height

屏幕状态栏高度:MediaQueryData.fromWindow(WidgetBinding.instance.window).padding.top。

Flutter设计中,组合的优先级大于继承。。StatefullWidget,StatelessWidget.

自定义widget:

Class MyApp extends StatefulWidget{

@override

MySateWidget createState() => MySateWidget();

}

Class MySateWidget extends State<MyApp>{

initState(){

//logic

Super.initState();

}

Widget build(context){

//logic

}

}

Flutter 所有控件widget(持续更新)相关推荐

  1. Flutter 布局控件完结篇

    本文对Flutter的29种布局控件进行了总结分类,讲解一些布局上的优化策略,以及面对具体的布局时,如何去选择控件. 1. 系列文章 Flutter 布局详解 Flutter 布局(一)- Conta ...

  2. Flutter 系列文章:Flutter Icon 控件介绍

    Flutter Icon 控件介绍 一.使用方法 构造方法 Icon(this.icon, {Key key,this.size,this.color,this.semanticLabel,this. ...

  3. Flutter 系列文章:Flutter Text 控件介绍

    flutter Text 控件介绍 一.使用方法 构造方法 设置普通的text Text("") Text(this.data, {Key key,this.style,this. ...

  4. Flutter 常用控件使用详解

    目录 配置 Flutter常用控件 Text TextField组件 Container Image GridView Row水平组件 Column垂直布局 Stack层叠布局 参考 配置 由于Flu ...

  5. Flutter 图表控件使用笔记

    Flutter 图表控件使用笔记 最近有图表绘制需要,记录下现有的Flutter主流实现方式 原文链接:https://blog.csdn.net/weixin_44259356/article/de ...

  6. Flutter侧边栏控件-SideBar

    前言 SideBar是APP开发当中常见的功能之一,多用于索引列表,如城市选择,分类等.在优化OpenGit趋势列表时,由于在选择语言时需要用到这样的控件,尝试开发了这个控件,效果如下图所示 准备 完 ...

  7. [Android5 系列二] 1. 全实例之控件(Widget)

    前言 android.view.View 视图类是widgets 的基类, 有很多的扩展类, 包括文本视图TextView.图像视图ImageView.进度条ProgressBar .视图组ViewG ...

  8. [Qt6][QML][教程]Image控件图片的更新以及相对路径的访问

    最近用Qt6+QML仿制网易云切歌时候MAC的通知界面,调用Image控件的时候发现了一些问题. 教程被应用在MediaStateT中 MediaStateT Github项目地址: https:// ...

  9. Android桌面控件Widget解析

    一:简介 App Widgets(微型应用视图)它能够嵌入到其他应用程序(如 系统桌面/其他应用的Activity)并接受定期更新,主要用于展现程序的快捷入口. 1.1 :AppWidgetProvi ...

最新文章

  1. 什么是标记符控制的分水岭算法
  2. IE下使用jquery ajax失效的原因
  3. Protobuf3 + Netty4: 在socket上传输多种类型的protobuf数据
  4. 前端学习(2715):重读vue电商网站35之在sessionStorage保存左侧菜单栏的激活状态
  5. 语法和c区别_史冠新 | 汉语语法单位辨正
  6. 我的Spring MVC第一个应用
  7. java 类 比较大小_java 类比较大小(实现Comparable接口)
  8. QT5.3.2与VS2013 fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突_(解决方案)...
  9. access查询设计sol视图_access查询类型分哪几种?
  10. Java基于spingboot+vue智慧小区物业管理系统源码 智慧小区管理系统源码
  11. ||分享一些百度云下载不限速神器||
  12. 【githubshare】开源的小说下载与阅读工具:Uncle 小说。目录解析与书源结合,支持有声小说与文本小说,可下载 mobi、epub、txt 格式文本小说
  13. བྱ་དེ་ཁྲུང་ཁྲུང་དཀར་པོ།།--洁白的仙鹤/仓央嘉措情歌--IPA--藏语...
  14. Java-(二)微信小程序授权获取用户信息和手机号码
  15. 论文阅读笔记-FGN: Fusion Glyph Network for Chinese Named Entity Recognition
  16. Java基于局域网(LAN)的聊天室软件-内附源码
  17. docker 和 k8s预研
  18. C++11 文件读写(vs2019 安装配置boost库)
  19. Win10应用商店OneNote安装错误0x800706D9
  20. The NPF or NPCAP service is not installed, please install Winpcap or Npcap aand reboot的解决方法

热门文章

  1. go-colly官方文档翻译(持续翻译中)
  2. 北电借SOA整合通信平台 技术进取不因破产保护改变
  3. 关于Python的迭代操作
  4. mac high sierra开机按option怎么只有一个磁盘_mac下载工具----SiteSucker
  5. spyder搭建python_在Python中安装Spyder时出错
  6. phpcms V9 整合 Discuz! X2 标准教程
  7. 作为移动开发你不能不了解的编译流程
  8. Python爬虫-爬取豆瓣出版社信息
  9. 静态变量static的理解
  10. 关于微信小程序iOS端时间格式兼容问题