十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在编写几个 Flutter 项目后,发现 Flutter 的强大之处在于业务中所有用到的控件以及场景都有对应的处理方案;而 Dart 语言也与 Java 、 Kotlin 类似,所以对 Android 开发者来说门槛非常低;特意记录一下常用的控件及其使用:
10年积累的成都网站建设、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有静宁免费网站建设让你可以放心的选择与我们合作。
StatelessWidget 不需要额外的创建 State
StatefulWidget 创建 State 类,并可以在其中保存一些状态
only 可以单独设置每个方向的内边距
类似于 LinearLayout 中的 orientation 设置为 vertical , mainAxisAlignment 表示竖向的一个对齐方式, crossAxisAlignment 表示横向的对齐方式
与 Column 相反,主轴是横向,对齐方式类似, crossAxisAlignment 表示竖向的对齐方式
类似 SizedBox ,一个容器,但是主要功能是有一个 decoration —— 装饰器,作用是绘制背景,或者使用 item 中的阴影
栈,先入后出,类似于 Android 上的 FrameLayout
通常配合 Stack 使用,固定显示在某一个位置
配合多 child 使用,会填充剩余的空间
Image 功能强大,使用不同的方法可以加载不同来源的图片
看到这些方法,突然觉得 Flutter 太香了,而且 Image 可以配置 clip 等裁剪出不同形状的图片,无论是圆形还是五角星都不在话下,然而 Android 要实现不规则的形状,可是要下不少功夫的。
名字和 Android 的一模一样,但是用法却比 Android 的简单很多:
主要就是 itemCount 与 itemBuilder ,其余就是配置样式, itemBuilder 需要返回一个 widget ,当然了,每个 ListView 都有其对应的 item ,在里面的方法中编写 widget 即可
与 ListView 类似,但是需要有一个 delegate 类,作用是设置有多少列,每一列之间的间距是多少
GridView 没有 build , children 表示所有的子 view
最常用的控件之一,有非常多的样式, Flutter 中通常是使用装饰器来处理控件的,如背景使用 BoxDecoration , TextFiled 使用 InputDecoration ; 使用如下
ClipRect控件默认是通过限制子widget的绘制区域来达到裁剪的效果的,通过custom clipper,可以自定义裁剪的大小跟坐标
ClipRect的定义如下
ClipRect class默认是没有任何裁剪效果的,需要通过clipper参数告诉ClipRect如何去裁剪,clipper是个CustomClipper类型,CustomClipper是个抽象接口类,我们通过继承CustomClipper,重写 getClip 方法可以定义一个裁剪区域,通过重写 shouldReclip 方法来告诉ClipRect当一个新的clipper被设置了是否需要更新裁剪区域,譬如开始设置的clipper裁剪坐标是从(10,10)开始的,新设置的clipper裁剪坐标是(20,20),那么shouldReclip需要返回true来通知ClipRect更新裁剪区域。
下面这个例子从网络上加载一张图片,并且进行裁剪,裁剪坐标是(10,10) 裁剪的宽高是图片的宽高减去10
效果如下
flutter 自动换行处理
flutter自动换行有几种场景:column中,row中
在Column中的Text不用任何处理,能够自动换行。
在Row中的Text需要用Expanded包裹。
另外Text自动换行有两个属性控制:
【software】: 是否自动换行【bool】
【overflow】:自动换行效果【TextOverfow】
换行效果分别是:clip【截取】,fade【隐藏】,ellipsis【三点省略】,visible【不换行】