Flutter -- Container

Container

类似iOS中的UIView,继承自StatelessWidget

布局

  • 如果没有子Widget、没有设置width、height以及constraints,并且父Widget没有设置unbounded的限制,会将自身调整到足够小。
  • 如果没有子Widget、alignment,但是提供了width、height或者constraints,那么Container会根据自身以及父节点的限制,将自身调节到足够小。
  • 如果没有子Widget、width、height、constraints以及alignment,但是父Widget提供了bounded限制,那么Container会按照父Widget的限制,将自身调整到足够大。
  • 如果有alignment,父Widget提供了unbounded限制,那么Container将会调节自身尺寸来包住child;
  • 如果有alignment,并且父Widget提供了bounded限制,在父Widget的范围内,Container会将自身调整的足够大,然后将child根据alignment调整位置;
  • 含有子Widget,但是没有width、height、constraints以及alignment,Container会将父Widget的constraints传递给子Widget,并且根据子Widget调整自身。

属性

  • margin:内边距,和子Widget有关系
  • padding:外边距,和父Widget有关系
  • alignment:子Widget对齐方式
    • 默认是Alignment(0,0),子Widget居中。取值范围是(-1,1)。
  • child:子部件
  • clipBehavior:裁剪方法
  • color:背景颜色,如果foregroundDecoration设置的话,可能会遮盖color效果。
  • constraints:边界约束
  • decoration:用来设置特殊背景、边框。绘制在child后面的装饰。设置了decoration的话,就不能设置color属性
  • foregroundDecoration:用来设置特殊背景、边框。绘制在child前面的装饰
  • key:一个唯一标记,仅仅用来更新widget->key相同的小部件的状态
  • transform:矩阵变换
  • transformAlignment:设置矩阵变换的对齐方式
  • width:宽度,设置为double.infinity可以强制在宽度上撑满,不设置,则根据child和父节点两者一起布局。
  • height:高度,设置为double.infinity可以强制在高度上撑满。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容