前言

参考于 flutter常用组件整理 - 知乎 (zhihu.com) (指大部分抄袭)

MaterialApp

属性属性值类型描述
navigatorKeyGlobalKey<NavigatorState>导航键
homeWidget应用打开时显示的页面
routesMap<String, WidgetBuilder>应用程序顶级路由表
initialRouteString初始路由
onGenerateRouteRouteFactory路由管理拦截器
onGenerateInitialRoutesInitialRouteListFactory生成初始化路由
onUnknownRouteonUnknownRoute当onGenerateRoute无法生成路由时调用
titleString应用切换时显示的标题
colorColor程序切换应用图标背景色(仅安卓)
themeThemeData主题颜色
darkThemeThemeData暗黑模式主题颜色
themeModeThemeMode哪种模式主题(默认跟随系统)
debugShowCheckedModeBannerbool是否显示调试模式右上角debug
showSemanticsDebuggerbool显示组件占位大小

Scaffold

属性属性值类型描述
appBarWidget顶部导航
bodyWidget主要内容
floatingActionButtonWidget悬浮按钮
floatingActionButtonLocationFloatingActionButtonLocation悬浮按钮的位置
floatingActionButtonAnimatorFloatingActionButtonAnimator悬浮按钮的动画
persistentFooterButtonsList<Widget>页面底部的一组按钮
drawerWidget左侧抽屉菜单
onDrawerChangedDrawerCallback左侧抽屉菜单改变事件
endDrawerWidget右侧抽屉菜单
onEndDrawerChangedDrawerCallback右侧抽屉菜单改变事件
bottomNavigationBarWidget底部导航
bottomSheetWidgetbody下方,底部控件上方,内容不会被键盘遮住
backgroundColorColor背景颜色
resizeToAvoidBottomInsetbooltrue可防止键盘遮挡
drawerScrimColorColor侧边栏弹出时非遮盖层主页面的颜色
drawerEdgeDragWidthdouble侧边栏弹出时非遮罩层的宽度

AppBar

属性属性值类型描述
leadingWidget左侧显示内容,如返回键
leadingWidthdouble默认56,左侧leading宽度
automaticallyImplyLeadingbooltrue情况下二级页面leading为空会默认显示返回键
titleWidget导航栏标题
centerTitlebool标题是否居中
actionsList导航栏右侧显示内容
bottomWidget导航栏底部的控件
elevationdouble导航栏下方阴影大小
shadowColorColor导航栏下方阴影颜色
backgroundColorColor导航栏的背景颜色
foregroundColorColor导航栏中文本和图标的颜色
iconThemeIconThemeData导航栏图标的颜色、透明度、大小
actionsIconThemeIconThemeData导航栏右侧图标的颜色、透明度、大小
titleSpacingdoubletitle内容的间距,0将占用全部空间

TabBar

属性属性值类型描述
tabsList两个或多个的Tab列表
controllerTabController控制Tab的控制器
isScrollableboolTab栏是否可以水平滚动
indicatorColorColorTab指示器的颜色
indicatorWeightdoubleTab指示器线条的粗细
indicatorPaddingEdgeInsetsGeometry设置选中Tab指示器间距
indicatorDecorationTab指示器的外观
indicatorSizeTabBarIndicatorSizeTab指示器的大小
labelColorColor选中Tab文字的颜色
labelStyleTextStyle选中Tab文字的样式
labelPaddingEdgeInsetsGeometry选中Tab文字的间距
unselectedLabelStyleTextStyle未选中Tab文字的样式
unselectedLabelColorColor未选中Tab文字的颜色
onTapValueChangedTab单击事件

Padding、AnimatedPadding

Padding增加组件间的间距,AnimatedPadding用于Padding需要改变大小并且增加动画效果

//paddingValue值改变会有动画效果
AnimatedPadding(
   padding: EdgeInsets.all(paddingValue),
   duration: Duration(milliseconds: 1000),
   curve: Curves.easeInOut,
   child: Container(
      width: MediaQuery.of(context).size.width,
      height: MediaQuery.of(context).size.height / 4,
      color: Colors.blue,
   ),
   onEnd: () {
      print("动画结束");
    },
),

Align、AnimatedAlign

Align用来确定子控件在布局中的位置,如居中、左上等多个对齐方式。

ConstrainedBox、BoxConstraints

ConstrainedBox

属性属性值类型描述
constraintsBoxConstraints对子组件添加额外约束

BoxConstraints

属性属性值类型描述
minWidthdouble最小宽度,默认0
maxWidthdouble最大宽度,默认double.infinity
minHeightdouble最小高度,默认0
maxHeightdouble最大高度,默认double.infinity

SizeBox、FittedBox

SizeBox

属性属性值类型描述
widthdouble宽度
heightdouble高度

FittedBox当子组件的内容超出父组件大小时,FittedBox的作用是对子组件进行缩放和对齐方式的设置。

属性属性值类型描述
fitBoxFit子组件缩放位置调整
alignmentAlignmentGeometry组件对齐方式
clipBehaviorClip剪辑子组件内容的方式

OverflowBox、SizedOverflowBox

OverflowBox允许子组件超出父组件的边界

属性属性值类型描述
alignmentAlignmentGeometry子组件对齐方式
minWidthdouble最小宽度
maxWidthdouble最大宽度
minHeightdouble最小高度
maxHeightdouble最大高度

SizedOverflowBox也允许子组件超出父组件的边界,但是它与OverflowBox不同的在于还可以对子组件进行尺寸部分的限制。

属性属性值类型描述
sizeSize尺寸大小限制
alignmentAlignmentGeometry子组件对齐方式
childWidget子组件

AspectRatio、FractionallySizedBox

AspectRatio主要作用是调整子组件设定的宽高比,如播放视频时16:9或4:3等,aspectRatio纵横比例

AspectRatio(
   aspectRatio: 16 / 9,
   child: Container(
      color: Colors.orangeAccent,
   ),
),

FractionallySizedBox当我们需要一个控件的尺寸是相对尺寸时,比如当前按钮的宽度占父组件的70%

 FractionallySizedBox(
    alignment: Alignment.topLeft,
    widthFactor: 1.5, //宽度为父组件的1.5倍
    heightFactor: 0.5, //高度为父组件的0.5倍
    child: new Container(
       color: Colors.red,
    ),
),

Container、AnimatedContainer

属性属性值类型描述
colorColor背景颜色
childWidget子组件
widthdouble宽度
heightdouble高度
alignmentAlignmentGeometry子组件的对齐方式
paddingEdgeInsetsGeometry内边距
marginEdgeInsetsGeometry外边距
decorationBoxDecoration背景装饰
foregroundDecorationBoxDecoration前景装饰
constraintsBoxConstraints盒子的额外约束
transformMatrix4组件旋转等变化
transformAlignmentAlignmentGeometry组件变化的原点

AnimatedContainer是Container的动画版本,需要在改变宽高、颜色等需要增加动画效果时使用

ClipRect、ClipRRect

ClipRect给子组件裁剪为给定的矩形大小

属性属性值类型描述
clipperCustomClipper自定义裁剪
clipBehaviorClip子组件边缘裁剪的方式,默认Clip.hardEdge
childWidget子组件

ClipRRect使用圆角矩形剪辑子组件

属性属性值类型描述
borderRadiusBorderRadius裁剪的边框圆角大小
clipperCustomClipper自定义裁剪器
clipBehaviorClip子组件边缘裁剪的方式,默认Clip.hardEdge
childWidget子组件

ClipOval、ClipPath

ClipOval是裁剪子组件为椭圆的组件,属性同ClipRect

ClipPath是可以使用路径裁剪的组件,属性同ClipRect

Center

对子组件进行居中的时候使用


GeorgieのBlog,分享生活的点点滴滴,分享代码干货