Flutter
Flutter学习笔记
不语风来去
这个作者很懒,什么都没留下…
展开
-
Flutter 网络请求 Dio
Json 与 Map 的转化把map数据转换成Json字符串json.encode(mapData);把json字符串转换成map数据json.decode(jsonStr);数据的请求初始化的数据应该在 initState() 中执行如果在build中请求数据,数据完成后调用 setState()方法, setState()回调build(),造成死循环并一直请求数据请求回来的数据,应该更关心与界面绑定的数据及其集合的引用,而不应过度关注具体指向的类型,从而规避类型转换异常问题原创 2021-05-16 21:38:42 · 299 阅读 · 0 评论 -
Flutter 自定义弹框 与 定时器
实现import 'package:flutter/material.dart';class CustomDialog extends Dialog { @override Widget build(BuildContext context) { // TODO: implement build return Material( //设置背景半透明 type: MaterialType.transparency, child: Center(原创 2021-05-16 20:23:17 · 403 阅读 · 0 评论 -
Flutter 系统弹框
生成普通弹框//其中build 定义返回widget ,所以可以自定义showDialog(context: context, builder: builder)生成底部弹框showModalBottomSheet(context: context, builder: bottomBuilder)关闭弹框//关闭弹框Navigator.pop(context);//关闭弹框时携带返回值 , 协同 async 和 await 关键字,由 showDialog | showModalBot原创 2021-05-16 19:04:18 · 1041 阅读 · 0 评论 -
Flutter 表单组件
TextFieldTextField( controller: _userName, //设置最大支持行数 maxLines: 3, //设置最大支持长度(会在右下角显示字的个数) maxLength: 300, //设置为true时,变为密码框 注意: 设置为密码显示时,最大行数必须置为1 //obscureText: true, //监听文本变化原创 2021-05-16 17:28:09 · 287 阅读 · 0 评论 -
Flutter 实现TabLayout效果
何如实现第一步创建一个StatefulWidget组件,并继承SingleTickerProviderStateMixin抽象类(使用with关键字)第二步创建TabController参数,并在适当的位中实例化TabController在当前state组件中只创建一次,否则报错: XXX is a SingleTickerProviderStateMixin but multiple tickers were created.//vaync: 继承了SingleTickerProvid原创 2021-05-16 16:16:17 · 726 阅读 · 2 评论 -
Flutter 路由 实现界面跳转
界面跳转普通路由不携值Navigator.of(context).push( MaterialPageRoute(builder: (BuildContext context){ //此处放回被跳转的界面 return SearchPage(); }));携值在被跳转界面的构造方法中添加对应参数,实现传值效果Navigator.原创 2021-05-16 15:14:00 · 324 阅读 · 0 评论 -
Flutter 底部导航实现界面切换效果 BottomNavigationBar
setState()state.setState()会触发该节点及以下整个子树更新动态变化的Widget的判定条件,应该显式的出现在该State的build()方法中,使得Widget树可以清晰的感知变化BottomNavigationBar系统自带的底部导航栏currentIndex标识当前选中的角标currentIndex: 0,示例class MyStateApp extends StatefulWidget { @override _MyStateAppState原创 2021-05-16 08:33:09 · 1228 阅读 · 0 评论 -
Flutter 常用组件 Center Padding Column Row Expanded Card
Center它的宽高 等于child的宽高它将处于父布局的中心位置Container( width: 150, height: 150, color: Colors.blue, //该Center将处于Container区域的中心位置 child: Center( child: Text( "我是一个文本") ) )PaddingColumn原创 2021-05-14 19:25:27 · 257 阅读 · 0 评论 -
Flutter 流式布局_Wrap
spacing横轴间距spacing: 10,runSpacing纵轴间距runSpacing: 10,alignment主轴对齐方式alignment: WrapAlignment.start,runAlignment整体相对于父布局的对齐方式//child全部右对齐runAlignment: WrapAlignment.end,示例class WrapBody extends StatelessWidget { @override Widget bui原创 2021-05-14 19:03:49 · 290 阅读 · 0 评论 -
Flutter 层叠布局_Stack
Stack通过外层包裹Container来设置宽高,本身不具备宽高属性alignment统一设置children的位置//设置所有的child都中心对齐alignment: Alignment.center,Align设置child相对于Stack 的位置Align( child: Container( color: Colors.red, width: 20, height: 20, ), //设.原创 2021-05-14 18:54:52 · 331 阅读 · 0 评论 -
Flutter 网格布局_GridView
crossAxisCount定义GridView的列数(竖向时) / 定义GridView的行数(横向时)crossAxisCount: 3,scrollDirection定义GridView的滚动方向//横向scrollDirection: Axis.horizontal,//纵向scrollDirection: Axis.vertical,crossAxisSpacing & mainAxisSpacing定义GridView的item之间的间距(不包含与外原创 2021-05-14 18:07:09 · 922 阅读 · 0 评论 -
Flutter 列表_ListView
scrollDirection设置列表的方向scrollDirection: Axis.horizontal,ListTile系统提供的快速创建ListView的item的布局ListTile( title: Text('标题'), subtitle: Text('副标题'), //在前方设置图标 (图片接收的是 widget组件,可自定义) leading: Icon( //图标 Icons.category, //图标大小 size:原创 2021-05-14 17:42:07 · 776 阅读 · 1 评论 -
Flutter 图片组件_Image
width & height设置宽高 (当外层被Container包裹时,如果Container设置了宽高,则image的宽高设置失效)height: 150,width: 150,fit图片的显示样式/** * 图片显示样式 * fill: 铺满 * contain: 原比例显示 * cover: 中心裁剪 * */fit: BoxFit.containrepeat处理盒子中没有被图片覆盖的部分该如何显示/** * 处理盒子中没有被图片覆盖的部分该如原创 2021-05-14 17:25:32 · 474 阅读 · 0 评论 -
Flutter 文本组件_Text
textAlign文本的对齐方式//居中对齐textAlign: TextAlign.centertextScaleFactor设置 文字按现有大小放大的倍数//文本放大1.5倍textScaleFactor: 1.5,style设置文本样式TextStyle设置字体大小fontSize: 16,设置字体颜色color: Colors.red设置字体加粗fontWeight: FontWeight.bold,设置斜体fontStyle: Font原创 2021-05-14 16:30:19 · 243 阅读 · 1 评论 -
Flutter基础组件_Container
下面的部分属性可在其他一些widget中通用color设置背景色color: Colors.redalignment设置child的相对位置//居中对齐的三种表现方式alignment: Alignment.centeralignment: Alignment(0.0, 0.0)alignment: FractionalOffset(0.5, 0.5),constraints用于设置 最大&最小 宽高constraints: BoxConstraints( .原创 2021-05-14 15:47:28 · 256 阅读 · 0 评论 -
Flutter 基础Demo
Flutter中的编写样式flutter中的编写样式,是通过dart语法中定义函数的可选命名参数来实现的,且在传入实体对象时,可省略new关键字Flutter定义的程序入口函数在main方法中被调用,参数接收一个widgetrunApp(Widget widget);示例import 'package:flutter/cupertino.dart';import 'package:flutter/material.dart';void main(){ //flutter中定义的入口原创 2021-05-13 22:52:34 · 385 阅读 · 0 评论 -
Dart与Java语法的一些不同之处
构造函数Dart中的构造函数可以省略方法体javaclass Student{ public String name; public int age; Student(String name,int age){ this.name = name; this.age = age; }}Dartclass Student{ String name; int age; Student(this.name,this.age);}Dart中的命名构造函数class Stud原创 2021-05-07 14:54:15 · 161 阅读 · 0 评论