
Flutter
codekxx
逗比一枚。
展开
-
Flutter控制TextFild输入框只能输入小数点后两位
1.工具类class PrecisionLimitFormatter extends TextInputFormatter { int _scale; PrecisionLimitFormatter(this._scale); RegExp exp = new RegExp("[0-9.]"); static const String POINTER = "."; static const String DOUBLE_ZERO = "00"; @override Text原创 2020-08-31 09:17:00 · 2794 阅读 · 3 评论 -
Flutter底部弹出框showModalBottomSheet不使用状态管理插件实现动态改变数据回调
void _showBottom(){ showModalBottomSheet( context: context, builder: (_) { return StatefulBuilder(builder: (_,setBottomSheetState){//重点 return BottomSheetFilterWidget( stateList1: _stateList1,原创 2020-06-19 09:13:51 · 1553 阅读 · 0 评论 -
Flutter调用相册闪退出现image from picker that was not requested
最近突然在调用相册的时候,在选择的时候突然闪退了,控制台出现image from picker that was not requested升级image_picker最新版本也没用,emmmmmmm经过分析,后来发现在用image_picker插件的同时,又使用image_saver的插件,导致这两个插件冲突,删除image_saver这个保存图片的插件库之后,用自己写的保存图片到本地的方法之后可以正常选择图片了。Future<Uint8List> capturePng() asyn原创 2020-05-19 15:43:42 · 2736 阅读 · 0 评论 -
Flutter监听前后台切换事件
class HomePage extends StatefulWidget { @override _HomePageState createState() => _HomePageState();}class _HomePageState extends State<HomePage> with WidgetsBindingObserver { @override void initState() { WidgetsBinding.instance.addOb原创 2020-05-11 16:21:16 · 6528 阅读 · 0 评论 -
Flutter使用BoxShadow设置投影
class DefaultCardContainer extends StatelessWidget { final Color backgroundColor; final Widget child; final EdgeInsets padding; final EdgeInsets margin; DefaultCardContainer({ this.backg...原创 2020-05-07 19:28:49 · 5114 阅读 · 0 评论 -
Flutter底部弹出框showModalBottomSheet实现顶部圆角
无图无真相~由于showModalBottomSheet默认的背景颜色为白色,这时需要将showModalBottomSheet的背景颜色设置为透明,然后将内部控件设置为圆角即可。具体代码:void _clickSpec(){ _specModel.initData(model.normInfoBean.norms); showModalBottomSheet(...原创 2020-03-27 10:33:20 · 5438 阅读 · 1 评论 -
Flutter实现自定义相机界面
先看图,无图无真相~界面很简陋,可以根据自己的需求进行修改界面自定义相册使用到的插件 camera: 0.5.7+4 permission_handler: 3.2.2 path_provider: 1.6.0主要代码主界面:class MyHomePage extends StatefulWidget { @override _MyHomePageState...原创 2020-03-03 14:42:20 · 4905 阅读 · 3 评论 -
Flutter出现List<dynamic> is not a subtype of type List<String>解决方法
控制台错误如下:type 'List<dynamic>' is not a subtype of type 'List<String>'出现这个错误的原因是由于解析json的数据类型不一致导致后台返回的一个json字段为:"data": { "name":"张三", "labelList": [ "55555", "666666", "...原创 2020-02-28 15:54:43 · 23622 阅读 · 4 评论 -
Flutter解决在ios中弹出键盘没有小数点
在Android平台中,将keyboardType设置为TextInputType.number没有出现任何问题;但是在ios中,弹起的键盘却没有小数点符号。在输入金额类型数据时,需要将keyboardType属性设置为TextInputType.numberWithOptions(decimal: true)。...原创 2020-02-05 21:05:36 · 2830 阅读 · 1 评论 -
Flutter dio3.x上传文件(图片)具体实现
上传文件具体实现如下:void uploadPhoto(File file) async{ String path = file.path; var name = path.substring(path.lastIndexOf("/") + 1, path.length); String imageType = name.substring(name.lastIndexO...原创 2019-12-17 15:06:53 · 7910 阅读 · 1 评论 -
Flutter获取App的版本号
1.在pubspec.yaml中添加依赖package_info: ^0.4.0+62.使用在main.dart初始化,可以在全局使用,类似java的使用,不用在dart中很不友好的进行异步调用,使用同步方法。my_utils.dart static PackageInfo packageInfo; //初始化 static init() async{ packag...原创 2019-10-15 11:42:49 · 3176 阅读 · 0 评论 -
Flutter解决按钮请求防重复提交
InkWell( onTap: (){ // 防重复提交 if(lastPopTime == null || DateTime.now().difference(lastPopTime) > Duration(seconds: 2)){ lastPopTime = DateTime.now(); ...原创 2019-10-12 17:32:07 · 6646 阅读 · 0 评论 -
Flutter打包出现Gradle task assembleRelease failed with exit code 1
使用Flutter打包APK出现:Gradle task assembleRelease failed with exit code 1 这是由于添加的极光推送插件有问题,需要升级到最新的0.1.0jpush_flutter: 0.1.0然后就能打包成功了!!!!...原创 2019-10-12 13:08:33 · 4874 阅读 · 0 评论 -
Android原生获取Flutter使用shared_preferences保存的信息
1.首先我查看了shared_preferences安卓端的源代码发现shared_preferences在Android端保存的文件名为FlutterSharedPreferences2.然后我在Android端写代码进行查询FlutterSharedPreferences里面的数据Flutter保存数据的代码如下: SharedPreferences sp = awai...原创 2019-10-10 10:04:48 · 2298 阅读 · 0 评论 -
Flutter动态权限申请教程
1.添加外部资源包permission_handler: 3.2.22.使用Future requestPermission() async { // 申请权限 Map<PermissionGroup, PermissionStatus> permissions = await PermissionHandler().requestPermissions...原创 2019-10-10 09:45:07 · 4839 阅读 · 3 评论 -
Flutter解决图片File格式上传失败,通过dio上传文件(图片)
上传请求方法如下:Future uploadRequest(url,{map}) async{ try{ Response response; Map<String, dynamic> headers = new Map(); SharedPreferences sp = await SharedPreferences.getInstance(); ...原创 2019-09-30 14:25:27 · 14325 阅读 · 9 评论 -
Android原生程序与Flutter交互具体实现
最近要在Flutter项目的基础上加一个实时定位的功能(程序保活,不是用户强制关闭需要开启一个服务不断上传经纬度到服务器),所以只用Flutter实现不了这个功能,需要Android原生和Flutter交互才可以!下面说一下Android原生和Flutter交互的步骤1.首先创建一个flutter moudle2.导入到Android原生项目中在导入外部moudle的时候不能用常规方法进...原创 2019-09-29 16:02:05 · 925 阅读 · 0 评论 -
Flutter实现TabBar联动并保存状态和Android中TabLayout配合ViewPager一样的效果
老规矩,先看图项目结构如下:1.main.dartimport 'package:flutter/material.dart';import 'tab_page.dart';void main() =&amp;amp;amp;gt; runApp(MyApp());class MyApp extends StatelessWidget { @override Widget build(Build...原创 2019-01-21 11:50:42 · 2130 阅读 · 0 评论 -
Flutter中撸一个漂亮的Material Design风格登录注册界面,带正则表达式校验
先看图,没图还说个J8代码实现如下:import 'package:flutter/material.dart';import 'package:flutter_wan/utils/common.dart';class LoginPage extends StatefulWidget { @override _LoginPageState createState() =&gt;...原创 2019-01-29 17:00:52 · 4989 阅读 · 2 评论 -
解决Android Studio或VSCode中连接不到第三方模拟器
Flutter中启动第三方模拟器1.先打开夜神模拟器2.win+R选择cmd进入夜神模拟器的安装目录的bin目录下我的目录是D:\Program Files\Nox\bin然后运行命令:nox_adb.exe connect 127.0.0.1:62001出现successful代表成功...原创 2019-02-18 15:22:03 · 12182 阅读 · 0 评论 -
Flutter使用provide状态管理器管理界面
先看图,没图说个J8Provide是Google官方推出的状态管理模式。(Google的亲儿子)github地址为:https://github.com/google/flutter-provide使用步骤如下:1.在pubspec.yaml添加依赖provide: ^1.0.22.创建add.dart文件import 'package:flutter/material.dart...原创 2019-07-24 16:18:28 · 700 阅读 · 0 评论 -
Flutter中屏幕目前最佳适配方案
1.pubspec.yaml中加入flutter_screenutil: ^0.5.3dependencies: flutter_screenutil: ^0.5.32.获取当前屏幕/密度/高度引入dart文件import 'package:flutter_screenutil/flutter_screenutil.dart';调用方法ScreenUtil.instan...原创 2019-07-22 11:51:09 · 3163 阅读 · 0 评论 -
Flutter解决ListView/SingleChildScrollView嵌套GridView滑动冲突
child: GridView.count( //屏蔽GridView内部滚动; physics: new NeverScrollableScrollPhysics(), crossAxisCount: 5, padding: EdgeInsets.all(5.0), children: navigatorList.m...原创 2019-07-23 10:47:49 · 3452 阅读 · 0 评论 -
Flutter解决ListView嵌套ListView不显示和滑动冲突
解决方式如下:@override Widget build(BuildContext context) { return Container( child: ListView( children: <Widget>[ _topSearchView(), _listView()...原创 2019-09-11 16:34:58 · 3151 阅读 · 2 评论 -
Flutter中解决ListView没配合AppBar使用顶部出现空白间隔
ListView头部有一段空白区域,是因为当ListView没有和AppBar一起使用时,头部会有一个padding,为了去掉padding,可以使用MediaQuery.removePaddingWidget _listView(BuildContext context){ return MediaQuery.removePadding( removeTop: true,...原创 2019-09-16 14:33:43 · 5696 阅读 · 4 评论 -
Flutter实现一行文本多种颜色
Container( child: RichText( text: TextSpan(text: '红色',style: TextStyle(color: Color.fromRGBO(255,113,66,1)), children: <TextSpan>[ ...原创 2019-09-16 18:52:49 · 4683 阅读 · 0 评论 -
Flutter中Dio网络请求添加cookie
Dio dio = new Dio(); Map<String, dynamic> headers = new Map(); headers['Cookie'] = cookie; Options options = new Options( headers:headers ); Future response; respo...原创 2019-09-18 13:30:17 · 3783 阅读 · 0 评论 -
Flutter中常用的第三方插件(不断更新...)
1.下拉刷新上拉加载插件flutter_easyrefresh: ^2.0.42.日历、日期、时间选择flutter_cupertino_date_picker: ^1.0.123.banner轮播图flutter_swiper: ^1.1.64.屏幕适配flutter_screenutil: ^0.5.35.本地化存储shared_preferences: ^0.5.1...原创 2019-09-19 17:36:56 · 3851 阅读 · 0 评论 -
Flutter中 输入控件TextField设置内容并保持光标在末尾
TextEditingController controller = TextEditingController.fromValue(TextEditingValue( // 设置内容 text: startWeight, // 保持光标在最后 selection: TextSelection.fromPosition(TextPosit...原创 2019-09-20 16:12:44 · 4706 阅读 · 4 评论 -
Android原生项目中引入Flutter moudle
Android Studio中引入Flutter Module用常规图形化的引入是不行的!!!1.使用Android Studio来创建Flutter Module(放在原生的同级目录)依次点击左上角的File --> New --> New Flutter Project然后选择Flutter Module。2.在项目根目录下的setting.gradle文件中配置:se...原创 2019-09-26 15:21:04 · 1354 阅读 · 0 评论 -
Flutter封装加载状态视图,加载中、加载成功、加载失败、加载无数据
先看图,无图无真相~具体实现如下:创建load_state.dart//四种视图状态enum LoadState { State_Success, State_Error, State_Loading, State_Empty }///根据不同状态来展示不同的视图class LoadStateLayout extends StatefulWidget { final Load...原创 2019-09-29 11:39:20 · 7670 阅读 · 5 评论 -
Flutter用BottomNavigationBar实现底部导航栏
老规格,先看图:程序主结构如下:1.在程序主入口文件main.dart添加如下代码import 'package:flutter/material.dart';import 'bottom_navigation.dart';void main() =&amp;gt; runApp(MyApp());class MyApp extends StatelessWidget { @ove...原创 2019-01-17 17:18:02 · 1594 阅读 · 0 评论