![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
flutter
文章平均质量分 79
神奇大叔
这个作者很懒,什么都没留下…
展开
-
flutter 断言
assert 方法的参数可以为任何返回布尔值的表达式或者方法。 如果返回的值为 true, 断言执行通过,执行结束。 如果返回值为 false,断言执行失败,会抛出一个AssertionError异常 。断言只在检查模式下运行有效,如果在生产模式运行,则断言不会执行。assert(...)代码示例:import 'dart:convert';import 'package:shared_preferences/shared_preferences.dart';extension S原创 2020-09-09 08:50:40 · 4564 阅读 · 0 评论 -
flutter 扩展类extension...on...
为指定类扩展额外的方法1、Flutter项目根目录创建一个analysis_options.yaml文件,然后添加以下内容到文件中。(若无法运行) analyzer: enable-experiment: - extension-methods2、创建.dart文件 extension 自定义名称 on 指定类{ 可以是第三方库的类 自定义方法等,通过this获取类本身的方法 }3、使用 导入该文件 实例对象.扩展的方法代码示例:extension原创 2020-09-09 08:47:21 · 2502 阅读 · 0 评论 -
flutter 类似rem布局
引入第三方库import ‘package:flutter_screenutil/flutter_screenutil.dart’;代码示例:/// 直接通过`类名称`访问里面的方法,方法为 静态方法class ScreenAdaper { static init(context){ /// 设计稿 --- 宽/高 ScreenUtil.init(); ScreenUtil.init(width: 750, height: 1334); ScreenUtil.in原创 2020-09-09 00:27:24 · 430 阅读 · 0 评论 -
flutter 类单例模式
你需要构造函数不是每次都创建一个新的对象时,使用factory关键字。 class 类名 { 单例公开访问点 factory 类名() =>_静态获取单例的方法() 静态私有成员,没有初始化 static 类名 _单例名; 私有构造函数 类名._构造函数名称() { 若要初始化} 对外暴露的单例 static 类名 _静态获取单例的方法() { if (_单例名 == null) { _单例名 = 类名._构造函数名称();原创 2020-09-09 00:17:24 · 1787 阅读 · 0 评论 -
flutterr 获取设备属性
1、获取屏幕高宽 MediaQuery.of(context).size.width MediaQuery.of(context).size.height2、设备的像素密度 MediaQuery.of(context).devicePixelRatio3、获取上边距和下边距的值。(主要用于刘海屏) MediaQuery.of(context).padding.top MediaQuery.of(context).padding.bottom...原创 2020-09-08 10:10:46 · 223 阅读 · 0 评论 -
flutter 组件传参
通过类的构造函数来传递参数代码示例:import 'package:flutter/material.dart';import 'test.dart';void main() => runApp(MyApp());class MyApp extends StatefulWidget { MyApp({Key key}) : super(key: key); @override _MyAppState createState() => _MyAppState();}原创 2020-09-08 09:14:46 · 3194 阅读 · 0 评论 -
flutter 左右滑动返回下上页
右滑返回上一页 方式一: 在main.dart的theme参数中添加target theme: ThemeData( platform: TargetPlatform.iOS, ), 方式二: 1、在跳转到的页面导入 import 'package:flutter/cupertino.dart'; 2、必须使用无状态组件 3、...原创 2020-04-29 09:28:02 · 2809 阅读 · 0 评论 -
flutter 设置启动页动画
1、在main.dart的MaterialApp内,将home对应的组件内容设置成,启动页所在组件2、启动页设置有状态组件,第二个状态类还要with多继承SingleTickerProviderStateMixin3、在initState生命周期函数中定义动画控制器和监听动画结束跳转到指定页面 AnimationController xx=AnimationController(vs...原创 2020-04-28 17:41:31 · 2988 阅读 · 0 评论 -
flutter 按路径切割组件ClipPath、绘制贝塞尔曲线
按路径切割组件 ClipPath( clipper:继承了CustomClipper<Path>的类且重写了两个方法 , 裁切路径 child: 待切割组件 )切割类 class BottomClipper extends CustomClipper<Path>{ Path getClip(Size size){ ...原创 2020-04-28 16:48:22 · 2494 阅读 · 0 评论 -
flutter 点击可展开收缩列表组件ExpansionPanelList
点击可展开收缩列表组件 必须放在可滚动组件里ExpansionPanelList( expansionCallback: (index,bool){ 点击右侧图标的回调 一般用来设置是否展开收缩 }, children:[ ExpansionPanel( he...原创 2020-04-28 10:34:26 · 5635 阅读 · 0 评论 -
flutter 点击可展开收缩组件ExpansionTile(类似点击展开消息栏)
可展开组件 ExpansionTile( title:Text("不点击时显示"), leading: , 首部组件 backgroundColor: Colors.grey, 展开时的背景颜色 onExpansionChanged: 变化回校 trailing: ...原创 2020-04-28 09:38:53 · 3090 阅读 · 0 评论 -
flutter 流式布局wrap实现类似点击添加照片的功能
setState(){ 可以直接写操作,而不一定全是赋值}代码示例:import 'package:flutter/gestures.dart';import "package:flutter/material.dart";import 'package:flutter/rendering.dart';import "drag.dart";import 'dart:ui';i...原创 2020-04-28 09:07:05 · 365 阅读 · 0 评论 -
flutter 获取屏幕宽高
var width=MediaQuery.of(context).size.width;var height=MediaQuery.of(context).size.height;原创 2020-04-28 08:54:25 · 280 阅读 · 1 评论 -
flutter 跳转到白屏搜索页面方法showSearch
跳转到白屏搜索页面方法 1、在回调函数中设置方法 showSearch(context: context, delegate: 搜索页面的类()); 2、创建搜索页面的类 (1)继承SearchDelegate (2)重写四个方法 其中:query为搜索框的内容 close(context, null); 关闭搜索界面 页面搜索框右上角显示内...原创 2020-04-27 17:57:35 · 1786 阅读 · 0 评论 -
flutter 富文本RichText(将完整的字符串分成几个片段,每个片段都可以有自己的样式和事件)
富文本 RichText( text: TextSpan( text: ‘文本内容’, 此内容作为根内容和其他字符串连在一起,也可也不写,在children中的TextSpan中写,则会变成兄弟内容和其他字符串连在一起 style: TextStyle(), 样式 recognizer: TapGestu...原创 2020-04-27 17:12:44 · 1446 阅读 · 0 评论 -
flutter 切换保持页面状态
1、页面必须是有状态组件2、继承状态类的类要with多继承AutomaticKeepAliveClientMixin3、在类中重写getter保持状态方法,返回true布尔值 bool get wantKeepAlive=>true; 4、设置完毕后可以保持数据状态和滚动条状态代码示例:保持状态组件:import 'package:flutter/mater...原创 2020-04-27 15:24:41 · 1066 阅读 · 0 评论 -
flutter 背景图片毛玻璃效果
1、引入图片滤镜文件 import 'dart:ui'; 2、在Stack组件中堆叠,产生图标毛玻璃效果 若不使用图片毛玻璃,仅仅是背景模糊透明,用Opacity组件就可实现 第一个组件为图片 第二个组件为图片产生毛玻璃效果,并设置图片上的组件 BackdropFilter( 背景过滤器 filter: ImageFilter.blur(s...原创 2020-04-27 11:14:49 · 3527 阅读 · 0 评论 -
flutter 约束盒子组件ConstrainedBox、透明度组件Opacity(可以设置幕布效果)
约束盒子组件 ConstrainedBox( 约束盒子,添加额外的约束条件到子组件上 constraints: BoxConstraints.expand(), 随着子元素扩展 child:xx ) 透明度组件 设置子组件的背景色为灰色,同时设置透明度,可以达到幕布效果 Opacity( opacity: 透明度, ch...原创 2020-04-27 10:48:39 · 1098 阅读 · 0 评论 -
flutter 普通路由切换动画效果
1、构造类来继承 PageRouteBuilder class xx extends PageRouteBuilder2、构造函数传入组件,并重写父类构造器 final Widget x; CusRoute(this.x):super( transitionDuration:Duration(seconds: 1), 动画时间 pageBuilde...原创 2020-04-27 09:45:41 · 1110 阅读 · 0 评论 -
flutter 底部导航栏使用BottomAppBar组件和floatingActionButton浮动按钮组件实现中间嵌入式圆形导航
底部导航栏使用BottomAppBar组件 底部导航栏除了可以使用BottomNavigationBar固定样式外,还可以自定义导航栏中的按钮 BottomAppBar( color:, 底部导航栏颜色 shape: CircularNotchedRectangle(), 有缺口的圆形矩阵,用来放置浮动按钮 child...原创 2020-04-26 17:05:50 · 1974 阅读 · 0 评论 -
flutter 可拖动组件Draggable、接收拖动组件容器DragTarget
可拖动组件 (1)若要组件位置变成拖动后位置,需要配合Positioned组件和Stack组件实现 (2)若只是可以拖动,但最终组件位置不改变,不使用Positioned组件 Draggable( data:, 拖拽传递的数据,任意类型,对应接收拖动组件的容器的onAccept回调的第一个参数 feedback:拖动过程中的组件, child: ...原创 2020-04-26 15:21:20 · 1094 阅读 · 0 评论 -
flutter 将全局坐标转换成组件内坐标
1、定义方法void getChar(BuildContext context,Offset set) { RenderBox box=context.findRenderObject(); 获得父组件 var local=box.globalToLocal(set); 将屏幕坐标转换成父组件内的坐标 local.dx 获取单独的坐标 ...原创 2020-04-22 17:21:17 · 1634 阅读 · 0 评论 -
flutter 获取父组件大小并布局容器LayoutBuilder
LayoutBuilder( builder: (context,constraints){ context为父级上下文 constraints.biggest.height; 获取组件在父组件所能设置的最大高度 contraints.maxWidth; 获取父组件宽度,高度同理 return 组件 }...原创 2020-04-22 16:38:00 · 7829 阅读 · 0 评论 -
flutter 上拉加载和下拉刷新
上拉加载 1、定义ScrollController控制器 ScrollController scroll=new ScrollController(); 2、使用控制器监听滚动事件 scroll.addListener((){ if(scroll.position.pixels==scroll.position.maxScrollExtent){ ...原创 2020-04-21 19:02:36 · 511 阅读 · 0 评论 -
flutter 环形进度条组件CircularProgressIndicator、线性进度条组件LinearProgressIndicator
环形进度条组件 不能放在ListView中 LinearProgressIndicator( valueColor: AlwaysStoppedAnimation(Colors.x), 设置进度颜色 backgroundColor: Colors.x, 设置整个进度条颜色 value:0.9 进度值,0到1之间 )...原创 2020-04-21 18:35:38 · 1590 阅读 · 0 评论 -
flutter 隐藏且不保留位置组件Offstage
Offstage( offstage: 布尔值, 当为true时,将隐藏组件且不保留空间位置 child: 组件, )代码示例:class _HomeState extends State<Home> { @override Widget build(BuildContext context) { return Container(...原创 2020-04-21 17:44:30 · 2214 阅读 · 0 评论 -
flutter 可以设置滚动的组件大全
ListView 一个可滚动的列表 NestedScrollView 一个可以嵌套其它可滚动widget的widget GridView 一个可滚动的二维空间数组 SingleChildScrollView 有一个子widget的可滚动的widget,子内容超过父容器时可以滚动。 Sc...原创 2020-04-21 08:56:51 · 3415 阅读 · 0 评论 -
flutter 启动报错解决方案
遇到如下错误,flutter clean->fluttter run原创 2020-04-21 08:20:25 · 1240 阅读 · 0 评论 -
flutter 弹出菜单按钮组件PopupMenuButton、弹出菜单组件方法showMenu
弹出菜单按钮组件: 不能设置位置,点击按钮后从按钮的地方展开菜单,会覆盖按钮 PopupMenuButton( itemBuilder: (context){ return [ PopupMenuItem( 菜单内容 value, 点击后回调中传递的值 ...原创 2020-04-19 22:47:36 · 6525 阅读 · 2 评论 -
flutter 事件组件GestureDetector
用来给组件绑定事件 GestureDetector( child:组件, ...事件 )代码示例: GestureDetector( child:Padding( padding: EdgeInsets.only(right: 10), child:Icon(Icons.add_circle_outline) ,...原创 2020-04-19 21:17:17 · 674 阅读 · 0 评论 -
flutter 启动页设置
1、在main.dart的MaterialApp内,将home对应的组件内容设置成,启动页所在组件2、在启动页所在路由设置启动图片等3、在initState()生命周期函数中设置延迟函数,n秒后跳转到其他路由页面即可代码示例:main.dart:import 'package:flutter/material.dart';import 'app.dart';import 'load...原创 2020-04-19 21:13:21 · 3682 阅读 · 0 评论 -
flutter 第三方库Dio,设置网络请求、拦截器、cookie
1、dart库搜索dio,按文档配置2、网络请求 get Response response = await Dio().get(url); print(json.decode(response)); post Response response = await Dio().post(url2, data:{'key':'4a8edfc8ac5ea...原创 2020-04-19 14:31:30 · 1266 阅读 · 0 评论 -
flutter json字符串类型和Map类型的相互转换以及、ajax网络请求
1、类型转换 (1)引入 import 'dart:convert'; (2)转换 json.encode(Map); 将Map类型转换成json字符串 json.decode(json); 将json字符串类型转换成Map2、网络请求 (1)dart库搜索http按文档配置 (2)引入 import 'dart:convert' as convert; im...原创 2020-04-18 21:28:48 · 3643 阅读 · 0 评论 -
flutter 自定义弹框
自定义弹框 在Material组件中定义内容,这样能实现弹框出现屏幕透明的效果 1、定义组件类来继承Dialog,添加build方法,return 自定义内容 2、通过 showDialog方法调用弹出框 showDialog( context: context, builder: (context){ return 类组件...原创 2020-04-18 17:54:36 · 3955 阅读 · 0 评论 -
flutter 定时器、延迟器
1、引入 import 'dart:async';2、使用 var time=Timer.periodic( Duration(milliseconds: 1500), 间隔时间 (参数){ 回调函数,参数是定时器对象 ... t.cancel(); 停止定时器,不取消会一直执行 } );代码示例:...原创 2020-04-18 17:46:54 · 7862 阅读 · 0 评论 -
flutter 覆盖屏幕组件Material
覆盖屏幕组件 会在当前屏幕内容基础上,再覆盖一个满屏的区域 Material( type = MaterialType.transparency, 屏幕灰色透明,即相当于覆盖一个灰色透明的div child:内容组件 )代码示例: Material( type:MaterialType.transparency, child: C...原创 2020-04-18 17:43:50 · 1863 阅读 · 0 评论 -
flutter 弹出框方法组件AlertDialog、选择弹出框方法组件SimpleDialog、底部选择弹出框方法组件showModalBottomSheet、悬浮框组件
在方法中设置,弹出框组件都是Future类型即promise对象弹出框方法组件: showDialog( context: context, builder: (context){ return AlertDialog( title: Text('标题'), content:Text('内容')...原创 2020-04-18 16:19:49 · 2109 阅读 · 0 评论 -
flutter 轮播图库fluuter_swiper
1、在dart库中搜索fluuter_swiper并按教程配置2、使用 轮播图的必须包裹有高度的父组件,或者父组件无高宽使用子元素宽高比组件AspectRatio Container( child:AspectRatio( aspectRatio: 2, child:Swiper( itemBuil...原创 2020-04-18 15:05:30 · 294 阅读 · 0 评论 -
flutter 第三方日历选择器flutter_cupertino_date_picker
1、在dart库中搜索flutter_cupertino_date_picker按文档安装2、选择需要的日历选择器,按demo修改地址3、分别为底部年月日选择器、底部年月日时分选择器代码示例:import 'package:flutter/material.dart';import 'package:date_format/date_format.dart';import 'p...原创 2020-04-18 11:11:48 · 1971 阅读 · 0 评论 -
flutter 日历选择器组件方法、时间时钟选择器组件方法
因为是通过方法调用的组件,所以都必须通过方法来调用,不能按组件方式来生成 日历选择器组件方法: 1、先通过DateTime生成时间对象 2、在方法中设置 showDatePicker( context:context, initialDate: 时间对象, 初始化时间 firstDate: DateTime(1980), 从当前到198...原创 2020-04-17 22:31:48 · 871 阅读 · 0 评论