摘要:
前言 Flutter中提供了一些剪裁函数,用于对组件进行剪裁。 剪裁Widget 作用 ClipOval 子组件为正方形时剪裁为内贴圆形,为矩形时,剪裁为内贴椭圆 ClipRRect 将子组件剪裁为圆角矩形 ClipRect 剪裁子组件到实际占用的矩形大小(溢出部分剪裁) 接口描述 const Cl 阅读全文
摘要:
前言 一个完整的路由页可能会包含导航栏、抽屉菜单(Drawer)以及底部Tab导航菜单等。Flutter Material组件库提供了一些现成的组件来减少开发任务。Scaffold是一个路由页的骨架,使用它可以很容易地拼装出一个完整的页面。 接口描述 AppBar是一个Material风格的导航栏, 阅读全文
摘要:
前言 Container是一个组合类容器,它本身不对应具体的RenderObject,它是DecoratedBox、ConstrainedBox、Transform、Padding、Align等组件组合的一个多功能容器,所以只需通过一个Container组件可以实现同时需要装饰、变换、限制的场景。 阅读全文
摘要:
前言 Transform可以在其子组件绘制时对其应用一些矩阵变换来实现一些特效。 接口描述 const Transform({ Key key, @required this.transform, this.origin, this.alignment, this.transformHitTests 阅读全文
摘要:
前言 DecoratedBox可以在其子组件绘制前后绘制一些装饰,例如背景,边框,渐变等。 接口描述 const DecoratedBox({ Key key, // 代表要绘制的装饰 @required this.decoration, // 决定在哪里绘制Decoration。它接收Decora 阅读全文
摘要:
前言 Padding可以给其子节点添加填充(留白)。 接口描述 class EdgeInsets extends EdgeInsetsGeometry { // 分别指定四个方向的填充 const EdgeInsets.fromLTRB(this.left, this.top, this.right 阅读全文
摘要:
前言 容器类Widget和布局类Widget都作用于其子Widget,不同的是: 布局类Widget一般都需要接收一个widget数组(children),他们直接或间接继承自(或包含)MultiChildRenderObjectWidget ;而容器类Widget一般只需要接收一个子Widget( 阅读全文
摘要:
前言 如果只想简单的调整一个子元素在父元素中的位置的话,使用Align组件会更简单一些。 接口描述 const Align({ Key key, // 需要一个AlignmentGeometry类型的值,表示子组件在父组件中的起始位置。 // AlignmentGeometry 是一个抽象类,它有两 阅读全文
摘要:
前言 层叠布局,即子组件可以根据距父容器四个角的位置来确定自身的位置。绝对定位运行子组件堆叠起来,即按照代码中声明的顺序。 Flutter中使用Stack和Positioned这两个组件来配合实现绝对定位,Stack允许子组件堆叠,而Positioned用于根据Stack的四个角来确定子组件的位置。 阅读全文
摘要:
前言 把超出屏幕显示范围会自动折行的布局称为流式布局。Flutter中通过Wrap和Flow来支持流式布局,将Row换成Wrap后溢出部分则会自动折行。 Wrap 接口描述 代码示例 FLow 一般很少会使用Flow,因为其过于复杂,需要自己实现子widget的位置转换,在很多场景下首先要考虑的是W 阅读全文