
Flutter移动开发
文章平均质量分 65
基于Flutter框架
可可鸭~
青春没有返程,感谢您的关注与来访!
展开
-
Flutter视频播放video_player + chewie
better_player 基于ijkplayer等方案的播放器。video_player 视频播放结合chewie控制器使用。chewie属性说明。原创 2022-08-31 18:01:09 · 4610 阅读 · 2 评论 -
Flutter生成长截图并保存在本地
xml中需要配置权限。yaml文件需要引入。原创 2022-08-31 17:56:05 · 1646 阅读 · 0 评论 -
Android之极光推送之自定义声音踩坑记录(持续更新)
查看极光文档,极光配置理解是这样的,设置通道,就会覆盖本身的声音参考文档Android 极光推送JPush—自定义提示音极光api文档极光初步了解极光推送(二)接收通知极光自定义声音配置说明文档,ios可以直接通过字段值自定义声音,android不行在res文件下新建raw目录存放指定声音flutter两个build下配置安卓环境依赖implementation 'cn.jiguang.sdk:jpush:4.7.2' // 此处以JPush 4.7.2 版本为例。原创 2022-08-19 18:44:43 · 1699 阅读 · 1 评论 -
Flutter之微信支付实战模板
现在主流的做法是再支付页面监听app的生命周期,即由后台切回前台的时候,检测下状态,若还在支付中,直接进入查询结果页面,由后台去检验订单,拿到结果显示即可。(后台主动查询理论上还是存在微信服务端延时的问题,因此后台进行查询的时候,建议采取轮询机制,若是没有支付成功的话,延时5秒后再确认下更保险)但是需要注意,微信的回调是异步的,并且有很多种情况是接收不到回调的,以下是确定收不到会调的情况。出现两次回调,是由于没有注销监听产生的。事件结束时关闭微信消息订阅。安装flutter插件。...原创 2022-08-15 20:38:40 · 1072 阅读 · 0 评论 -
Flutter组件渲染集合的几种方式之详解与实战举例(更新)
ListView.builder 是一种构建列表的方法,其中的子 Widget 可以按需构建。但是,与返回静态 Widget 不同的是,它会多次调用(基于 itemCount)一个生成函数,并可在每次调用时返回不同的 Widget。SingleChildScrollView 和 ListView 都有滚动属性physics 他们默认是都是可以滚动的,当选中该金额项目时,触发点击事件和样式,如下用Wrap实现,for循环遍历,拿到当前索引值。,它创建了一个在横轴上具有固定数量 网格块 的平铺的布局。...原创 2022-08-09 23:24:00 · 1059 阅读 · 0 评论 -
Flutter与原生通信(下)
测试的时候,改了原生层代码(Java或Kotlin),需要将项目重新运行,如果只使用Flutter的热重载功能只是更新了flutter端中的代码。新建的Activity需要继承FlutterActivity,并重写。方法,在此方法中进行插件的初始化。原生Android代码理解。找到flutter端。...原创 2022-08-07 17:55:47 · 522 阅读 · 0 评论 -
Flutter之图片选择器、支持多语言国际化、动画
dart的map类型使用它里面的数据只能通过一个方法就是data[‘data’]来使用‘非常麻烦 且没有代码自动补充提示,而且网络请求数据很多大部分的构造都是list和map,要是用那种中括号加key的方式来做就很浪费时间。其中 didPush、didPushNext、didPopNext、didPop 为路由堆栈变化的回调。一种方法是写一个监听路由堆栈的基类,所有页面继承此基类。Flutter国际化语言就是根据不同国家使用者的不同语言版本,设置本地化的一些值,如文本布局。...原创 2022-08-06 19:25:58 · 1518 阅读 · 0 评论 -
Flutter之安卓端极光推送使用
修改android/app/src/main/kotlin/com/weixunbang/jingzhunke/MainActivity.kt类中的包。2.有了这个key.jks文件后,可以到项目目录下的android文件夹下,创建一个名为key.properties的文件,并打开粘贴下面的代码。1在项目的pubspec.ymal文件里导入极光推送的包。修改/android/app/src/main/kotlin下的文件路径名称,如图。否则就会在弹出框中弹出JPush提示信息包名和AppKey不匹配。...原创 2022-08-01 17:52:59 · 6604 阅读 · 0 评论 -
Flutter中深入了解MaterialApp,常用属性解析
Flutter Framework Foundation、Animation、Painting、Gestures合成了Dart UI层,对应的是Flutter中 dart:ui 包,对应的含义是动画、手势、绘制能力。Rendering层是一个抽象布局层,依赖于Dart UI层,Rendering层会构建一个UI树、当UI树有变化时,会计算出有变化的部分,然后更新UI树,最终绘制在屏幕上Widgets层是Flutter提供的一套基础组件库Material、Cupertino是Flutter提供了两种视原创 2022-06-28 17:15:39 · 3458 阅读 · 0 评论 -
Flutter中修改android中对应版本号、以及异步获取版本号
第一步:找到yaml文件中的versionAndroid中默认代表第二步:修改对应的值即可二、获取版本号第一步:安装依赖第二步:ui配置原创 2022-06-28 15:37:19 · 4890 阅读 · 0 评论 -
Flutter与原生通信(上)
1.搭建流程:Flutter ------>NativeMethodChannel是Flutter和原生交互的基础,通过传入Flutter插件的名字,调用invokeMethod方法,便可以调用原生的方法,有点类似于Java的反射。注册渠道:在两端同时创建一个MethodChannel对象,注册相同的字符串值。Android端Flutter端setMethodCallHandler 方法注解Native ------>Flutter在( Flutter ——> Native)代码基础上面原创 2022-06-25 16:10:28 · 1407 阅读 · 0 评论 -
Flutter中单例模式理解及举例
dart单例模式原创 2022-06-01 11:44:39 · 3631 阅读 · 0 评论 -
Flutter之Provider共享数据的两种方式
Provider共享数据的两种方式方式一: Provider.of<CountViewModel>(context);举例import 'package:flutter/material.dart';class CountViewModel extends ChangeNotifier{ int _count = 0; //将变量暴露在外面 int get count=>_count; addCount(){ _count++; notifyLi原创 2022-04-20 15:29:26 · 2158 阅读 · 0 评论 -
Flutter之路由跳转(上)
import 'package:flutter/material.dart';class AnimationDemo extends StatefulWidget { @override _AnimationDemoState createState() => _AnimationDemoState();}class _AnimationDemoState extends State<AnimationDemo> with SingleTickerProviderState原创 2022-04-07 17:37:29 · 4605 阅读 · 0 评论 -
Dart之基础知识巩固
一、Dart中的变量与常量1.变量1.var类型是任意数据类型,一旦赋值类型就会确定不可以在更改,确定类型的时间是在编译结束以后2.强制变量的类型比如String value = "今天是清明节";2、常量不可变的变量例如一些配置项,对于不可变的变量可以使用final和const关键字,final修饰的关键字声明的变量为最终变量,const修饰的关键字为最终常量final和const区别:const编译时常量,final是运行时常量(在第一次使用时被初始化),可以理解为’懒加载’类原创 2022-04-06 12:07:20 · 2183 阅读 · 0 评论 -
Flutter之常用组件的使用举例(中)
轮播图import 'package:flutter/material.dart';import 'package:flutter_swiper/flutter_swiper.dart';class Loginpage extends StatefulWidget { const Loginpage({Key key}) : super(key: key); @override _LoginpageState createState() => _LoginpageState();原创 2022-04-02 17:44:33 · 2556 阅读 · 0 评论 -
Flutter之商城实战分解(上)
Flutter之商城实战(上)一、fluro路由搭建知识点1initialRoute:是项目的根路由,初始化的时候最先展示的页面onGenerateRoute(RouteFactory类型函数):路由钩子,可以对某些指定的路由进行拦截,有时候不想改变页面结构,但是又想要求跳转到这个页面的时候可以用到,比如,页面设定了传参你进行跳转的候。onUnknownRoute(RouteFactory类型函数):在路由匹配不到的时候用到,一般都返回一个统一的错误页面或404页面配置yaml文件原创 2022-03-30 10:32:19 · 675 阅读 · 1 评论 -
Flutter之常用组件的使用举例+实战(上)
import 'package:flutter/material.dart';import '../page/Home.dart';import '../page/Category.dart';import '../page/Setting.dart';class Tabs extends StatefulWidget { const Tabs({Key key}) : super(key: key); @override _TabsState createState() =>原创 2022-03-29 17:21:31 · 2219 阅读 · 0 评论 -
Flutter之初识eventBus
一、EventBus介绍在Android事件总线库中,EventBus库是最广泛之一。发布者/订阅者模式集中式通信低耦合,简化组件通信在APP中,常常需要一个广播机制,用以跨页面事件通知。好比从第一个页面跳转到第二个页面,用户在第二个页面操做的动做行为要及时反馈到第一个页面中(如刷新页面中的数据)。这种场景,一个事件总线便会很是有用,事件总线一般实现了订阅者模式,订阅者模式包含发布者和订阅者两种角色,能够经过事件总线来触发事件和监听事件。二、自定义EventBus步骤1.原创 2022-03-29 15:18:20 · 1419 阅读 · 0 评论 -
Flutter之简单实现购物车功能代码+逻辑
一、初始化时判断是否为登录状态,假设是登录状态从本地中取出token,带参传递给后端请求登录后购物车数据二、分析点击全选和非全选状态1.全选状态就是把数组中的数据对应的每个check值设置为true,总价就是后端返回的全选数量的总价格设置全选和非全选这个的改变是由初始化查询数组列表中是否为全选或非全选状态所决定,如果遇见一个check为false那么就返回false2.非全选状态(总价结果为0或者当前选中对象的总价之和)判断是否非全选状态三、改变单个物品check,触发checkCa原创 2022-03-27 16:17:01 · 2914 阅读 · 0 评论 -
Flutter之异步编程(下)
Flutter之异步编程(下)StreamStream是Dart语言中所谓异步数列的东西,直白点就是一个异步数据队列。为了控制Stream我们通常采用StreamController来进行管理,sink作为入口函数,StreamController提供stream属性作为数据的出口,StreamController.stream.listen用来监听Stream是否有数据一、Stream分类单订阅流多订阅流二、Stream 创建 Flutter 提供了多种创建 Stream 的方式;原创 2022-03-24 10:42:19 · 1056 阅读 · 0 评论 -
Flutter之异步编程(上)
Flutter之异步编程一、异步所谓异步表示可以同时干几件事情,不需要任何事情做完就可以做其他的事情,这样可以提高程序的运行效率。Flutter的异步机制涉及关键字有await、async、iterator、interable、stream和itmer等、比较常用的为async和await。1.线程单线程顺序执行,自上而下多线程相当于开辟另一条执行线,让耗时代码在另一条线上运行事件循环多线程虽然好用,但是在大量并发时,存在着两个极大的缺陷,一个是开辟线程比较耗费资原创 2022-03-23 20:54:49 · 1790 阅读 · 0 评论 -
Flutter之异常处理
Flutter之异常处理一、前言:flutter的异常处理与java非常相似。与java不同的是Dart不检测是否是声明的,也就是说方法或者函数不需要声明要抛出哪些异常二、抛出异常的三种方式void textException(){ throw Exception("方式一");}//不建议void textException(){ throw ("方式二");}void textException()=>throw ("方式三");三、异常捕获格式try{//逻辑代码块原创 2022-03-23 13:04:04 · 3538 阅读 · 0 评论 -
Flutter之SharedPreferencesUtil初识
Flutter之SharedPreferencesUtil初识Android SharedPreferencesUtil工具类public class SharedPreferencesUtil { public static final String mTAG = "test"; // 创建一个写入器 private static SharedPreferences mPreferences; private static SharedPreferences.Edit原创 2022-03-21 17:17:06 · 731 阅读 · 0 评论 -
flutter网络请求基础知识铺垫、及实战举例
dart网络请求一、请求本地自己编写的json文件我这取名叫shop.json{ "data": [ { "name": "ƻ��", "image": "https://img-blog.csdnimg.cn/dd7ef8859850417ab6f20b36d7276ab0.png", "oriPrice": 14, "presentPrice": 20, "goodsID": "001" } ]}打开git输原创 2022-02-28 16:56:14 · 2641 阅读 · 0 评论 -
Flutter-Json换为 model
flutter中json转化为数据模型原创 2022-03-11 15:18:36 · 3022 阅读 · 0 评论 -
企业级路由fluro
flutter异步编程所谓异步编程表示同时可以做几件事情,不需要等待任何事情做完就可以做其他的事情.这样可以提高程序运行的效率Flutter-Json转实体类(插件FlutterJsonBeanFactory)FlutterJsonBeanFactory重启一下在pubspec.yaml中引入下面的库dependencies: json_annotation: ^4.0.1 build_runner: ^2.0.4 json_serializable: ^4.1.3创建实原创 2022-03-07 21:49:01 · 530 阅读 · 0 评论 -
flutter基于provider状态管理设置主题颜色、实现简单登录、注册功能---页面+逻辑
flutter登录功能的实现第一步:创建目录文件夹第二步:配置yaml文件依赖 provider: ^4.3.2+3 dio: ^4.0.0 tdui: 0.0.3 encrypt: ^5.0.1 # 提示框 flutter_easyloading: ^3.0.0编写global.dartimport 'package:dio/dio.dart';import 'package:flutter_easyloading/flutter_easyloading.dart'原创 2022-03-04 10:28:44 · 3917 阅读 · 2 评论 -
Flutter-基础第二篇
import 'package:flutter/material.dart';void main() { runApp(MyApp());}class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text(原创 2022-02-03 17:46:20 · 2255 阅读 · 0 评论 -
移动开发-flutter环境的搭建
移动开发-flutter环境的搭建一、dart环境搭建//移动开发第一篇已经写过了二、Android SDK环境搭建第一步:安装SDKAndroid SDK Tools如果是安装了Android Studio默认创建的时候可以自动生成一个Android SDK,默认是在c盘中第二步:环境配置找到Android Studio sdk位置,分别在path中引入到这两个目录下第三步:在安装目录Android\android-sdk 下的找到并打开SDK Manager.exe,如下图原创 2022-01-18 15:16:02 · 2307 阅读 · 0 评论 -
初学移动端-第一篇
flutter框架基于dart语言一、dart环境搭建dart官网需选择相应的版本下载如果使用cmd命令相对较慢链接:https://pan.baidu.com/s/1elx5SDmr76krEect7T9FxQ 提取码:qqsa下载完毕后,在系统环境变量path中引入到dart到bin的文件目录,在命令行中输入dart --version测试一下是否引入成功即可在这里我使用的是vscode,需要下载前两个插件运行代码dart变量命名规则1.变量名称必须由数字,字母,下划线和美原创 2022-01-17 13:43:02 · 2150 阅读 · 0 评论