Flutter开发--基础组件

什么是Widget?

一切皆是Widget,Widget是Flutter应用用户界面的基本单元,每个Widget都与最终的用户界面的展示紧紧相关

MaterialApp

Meterial应用以MaterialApp Widget开始,主要封装了应用程序实现Metrial Design所需要的一些配置

常用基础控件

text

image :要配置yaml文件,格式必须正确,缩进两位

线性布局:是指沿水平方向或者垂直方向排列子布局,flutter中荣国row(横向,行)或者column(纵向,列)来实现线性布局

弹性布局:弹性布局允许子控件按照一定比例来分配父容器空间,flutter中的弹性布局主要依靠flex和expanded来配合实现

层叠布局:层叠布局能够将子控件层叠排列,flutter中stack允许子组件堆叠,而positioned用于根据stack的四个角来确定子组件的位置

Listview   Gridview: 通过build来大量创建item

路由:在flutter中,屏(screen)和页面(pager)都叫做路由(route),路由管理,就是管理页面之间如何跳转,在flutter中维护一个路由栈,路由入栈操作对应打开一个新页面,路由出栈对应关闭一个新页面,而路由管理主要是指如何来管理路由栈

通过onPressd触发点击事件,Navigator.push()进行入住管理,Navigator.pop()出栈管理

onPressed: () {

Navigator.push(context, MaterialPageRoute(builder: (context)=>SecondRoute()));

},

Flutter动画

控件与交互

基础动画

路由动画 默认MaterialPageRoute动画效果,还可以自定义。

hero动画(共享动画)hero标签,tag必须一致

交织动画

Flutter手势

指针和手势

指针事件:

PointerDownEvent:指针在特定位置与屏幕接触

PointerMoveEvent:指针从屏幕一个位置移动到另一个位置

PointerUpEvent:指针与屏幕停止接触

PointerCancelEvent:指针的指向已经不再指向该应用。

HitTestBehavior

deferToChild:子组件会一个接一个的进行命中测试,如果子组件收到事件,父级组件也会收到该事件

opaque:在命中测试时,将当前组件当成不透明处理(即时本身透明)

translucent:当点击组件透明区域时,可以对自身边界内及底部可视区域都进行命中测试

忽略指针事件

IngorePointer:阻止子树接受指针事件,本身不会参与命中测试

AbsorbPointer:组织子树接受指针事件,本身参与命中事件

手势

GestureDetector:用于手势识别的功能性组件,可以识别各种手势,是指针事件的语义化封装,内部使用一个或多个GestureRecognizer

GestureRecognizer:通过Listener将原始指针事件转化为语义手势

平台集成

flutter client通过MethodChannel反射iOS端和Android的插件,通过通道得到原生方法的执行。

总结:

目前学习flutter只是一套ui框架,包括申请权限,调用摄像头,读写文件还是需要在各个平台开发。

你可能感兴趣的:(Flutter开发--基础组件)