Flutter学习实践指南
Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。
H.A.N
Objective-C、Swift、热更新、APICloud跨平台开发、Flutter学习实践指南、性能优化实践指南。GitHub:https://github.com/HanQiGod
展开
-
Flutter - TabController监听index
简单一个小例子:class _RankPageState extends State<RankPage>{ final List<Tab> titleTabs = <Tab>[ Tab( text: '全部', ), Tab( text: '待付款', ), Tab( text: ...原创 2020-03-20 09:11:30 · 8526 阅读 · 1 评论 -
Flutter 报错:The 'Pods-Tatget' target has transitive dependencies that include static binaries
最近做一个 Flutter 电商项目,编译 pod install 时报错 :“The ‘Pods-Tatget’ target has transitive dependencies that include static binaries”。直接上解决办法: 出现这个问题的主要原因是开启了 use_framework! 选项,开启这个选项的时候,pods 集成的所有的库都会以 dyn...原创 2020-01-09 08:40:56 · 3053 阅读 · 0 评论 -
解决 Flutter showBottomSheet 设置高度没有作用的?
最近在做一个电商项目,其中规格视图 Flutter 的底部弹窗,但是发现 showBottomSheet 在弹出的时候最高高度始终限制在了屏幕的二分之一的位置,再往高设置仍然还是一半高度,但是我们的弹窗设计稿是占据屏幕三分之二的位置的,显然 Flutter 的这个限制是无法满足需求的。 有问题的截图如下:怎么去解决这个问题??? 当时百度 Google了两个小时,发现了 Flutt...原创 2019-12-13 17:27:38 · 1378 阅读 · 0 评论 -
Flutter 取两位小数 不要四舍五入的方法
如图: 打印结果: 我们知道 toStringAsFixed() 这个方法会在保留小数的基础上对末位进行四舍五入。所以我们需要多取 1 位再进行截取,防止第二位四舍五。 为什么要进行 toStringAsFixed() 这个方法呢,原因是我们要求保留两位小数,假如给的数字是 100,那么就需要去补充小数点后的两位小数 0,即 100.00,所以要用到这个方法去保留。...原创 2019-12-11 10:01:48 · 12915 阅读 · 2 评论 -
Flutter Clipboard 粘贴板使用
在 Flutter 提供了 Clipboard 跟 ClipboardData 用来操作系统的复制粘贴。 源码如下:/// 设置要复制到粘贴板中的内容@immutableclass ClipboardData { /// Creates data for the system clipboard. const ClipboardData({ this.text }); ...原创 2019-12-09 09:41:24 · 1383 阅读 · 0 评论 -
Flutter 取消按钮水波纹的方法
因为 InkWell 继承自 InkResponse,因此这里只以 InkResponse 来进行分析。第一种方法: 在 InkResponse 外围添加 Container,然后在 Container 中添加 color 属性,例子如下:return Scaffold( appBar: AppBar( title: Text("title"), ), ...原创 2019-12-06 10:47:51 · 4230 阅读 · 0 评论 -
iOS 微信支付(1.8.6) -- Universal Links 创建
今天项目接入微信支付,在更新微信支付sdk(1.8.6)的时候,用到一个Universal Links,之前没有接触过,于是就简单的记录一下配置过程。在 iOS9 之前,要在浏览器中唤醒 App,我们通常使用 scheme。这种方式需要提前判断系统中是否安装了能够响应此scheme 的 App,并且这种方式在微信被禁用。目录:一 、官方解释二、具体操作三、微信支付配置 Univ...原创 2019-12-03 13:51:29 · 1626 阅读 · 0 评论 -
Flutter 解决依赖版本冲突
前言 Google 推出 Flutter 这样一个新的高性能跨平台(Android,iOS)快速开发框架之后,被业界许多开发者所关注。我在接触了 Flutter 之后发现这个确实是一个好东西,好东西当然要和大家分享。 今天要跟大家分享的是如何解决 Flutter 中依赖版本冲突。为什么会存在版本依赖问题 我们在开发 Flutter 项目中,常常会依赖第三方库。Flutter 依赖项越...原创 2019-12-02 16:47:42 · 2569 阅读 · 0 评论 -
Flutter 隐藏键盘
直接上代码 : TextEditingController _contentController = new TextEditingController(); FocusNode _contentFocusNode = FocusNode();Container( padding: EdgeInsets.fromLTRB(0.00, 5.00, 0.00,...原创 2019-11-22 08:30:28 · 1258 阅读 · 0 评论 -
Flutter 相册选择图片和相机拍照
Flutter 获取相册中的图片和用相机拍照 在原生开发中,拍照及从图库选择图片是非常常见的需求,而且原生的图片选择第三方库也有很多并且很完善了。Flutter 也给我们提供了好用的图片选择插件,iOS 和 Android 都可以使用!使用方法 首先添加依赖: 在 pubspec.yaml 加入 image_picker 的依赖,然后 ctrl + s 保存即可。在 Flutter...原创 2019-11-21 08:31:50 · 1904 阅读 · 0 评论 -
Flutter 倒计时
Flutter 倒计时写一个倒计时定时器听起来真的好简单,然而在 Flutter 里面写这个东西还是挺坑的。原本以为创建一个 Timer 就一切都搞定了,但并没办法实时获取倒计时的进度。void countdown(){ Timer timer = new Timer(new Duration(seconds: 10), () { // 只在倒计时结束时回调 }...原创 2019-11-13 08:28:59 · 883 阅读 · 0 评论 -
Flutter 获取应用缓存和清理缓存
Flutter 获取应用缓存和清理缓存 在 Android 和 iOS 中,都有需要获取应用缓存和清除应用缓存的功能,那么在 Flutter 里面应该怎么做呢? 要想获取到应用缓存,我们就必须找到用来装缓存数据的文件夹,所以这里我们需要引入 path_provider , 用来获取 Android 和 iOS 的缓存文件夹,然后再根据文件循环计算出缓存文件的大小。 首先,我们先简单介绍...原创 2019-11-12 08:55:22 · 8823 阅读 · 6 评论 -
Flutter 和 iOS 中 .gitignore 文件内容
Flutter 和 iOS 混编,其中 .gitignore 文件内容:# Built application files*.apk*.ap_*.aab# Files for the ART/Dalvik VM*.dex# Java class files*.class# Generated filesbin/gen/out/# Gradle files.gra...原创 2019-10-23 14:12:51 · 521 阅读 · 0 评论 -
Flutter 开发Packages、插件包、调用原生编写的 iOS 三方库以及传值总结
创建 package命令:flutter create --template=plugin -i 【iOS语言objc/swift】-a 【Android语言kotlin/java】【项目名】例如:flutter create --template=plugin -i swift -a kotlin map文件目录这将在 map/ 文件夹下创建一个具有以下专用内容的插件工程:l...原创 2019-10-22 11:52:50 · 1338 阅读 · 0 评论 -
Flutter 学习笔记(适合初学者教程 - 持续更新)
前言 Dart 作为开发 Flutter 应用的基础语言,对于开发 Flutter 应用你必须要学习 Dart 语言。其实,个人认为高级语言基本上都是大同小异,90% 是想通的,只有 10% 是此种语言的特性,需要重点学习。我个人认为,只要你有一门高级语言的基础,学习 Dart 语言其实是不难的。习惯上和思想上多注意一点就 ok 了。原创 2019-07-30 17:53:08 · 2486 阅读 · 2 评论 -
Dart 语言学习笔记(适合初学者教程 - 持续更新)
前言 Dart 作为开发 Flutter 应用的基础语言,对于开发 Flutter 应用你必须要学习 Dart 语言。其实,个人认为高级语言基本上都是大同小异,90% 是想通的,只有 10% 是此种语言的特性,需要重点学习。我个人认为,只要你有一门高级语言的基础,学习 Dart 语言其实是不难的。习惯上和思想上多注意一点就 ok 了。原创 2019-07-26 14:17:06 · 1692 阅读 · 1 评论 -
Flutter 混合工程改造实践
背景由于原有的 iOS 和 Android 工程都已相当庞大,如何将 Flutter 无缝桥接到这些大工程并保证开发效率不受影响成为优先要解决的问题。本文针对项目实践人员给出了一种通用的工程改造方案,希望为准备转型 Flutter 的团队提供参考。问题Flutter 的工程结构比较特殊,由 Flutter 目录再分别包含 Native 工程的目录(即 iOS 和 Android 两个目...原创 2018-09-28 16:19:40 · 468 阅读 · 0 评论 -
Flutter 混合工程持续集成实践
引言在之前的文章《Flutter 混合工程改造实践》中,有些同学留言想了解抽取 Flutter 依赖到远程的一些实现细节,所以本文重点来讲一讲 Flutter 混合工程中的 Flutter 直接依赖解除的一些具体实现。思考因为目前我们闲鱼是 Flutter 和 Native 混合开发的模式,所以存在一部分同学只做 Native 开发,并不熟悉 Flutter 技术。...原创 2018-08-09 11:50:11 · 6144 阅读 · 1 评论 -
Flutter 的两种编译模式
使用 Flutter 构建过 App 的人一定有一个困惑,就是 Flutter 编译出的产物到底是什么玩意。有时候分为几个文件,有时候是一个动态库,真的叫人摸不着头脑。本文详细解释一下 Flutter 的编译模式。编译模式的分类编程语言要达到可运行的目的需要经过编译,一般地来说,编译模式分为两类:JIT 和 AOT。JITJIT 全称 Just In Time (即时编...原创 2018-08-02 16:07:19 · 12350 阅读 · 3 评论 -
Flutter基础--看完这篇就可以撸App
这篇内容纯干货,手把手一步一步展示,从零到一个完整的app的构建。 上一篇文章已经教大家怎么搭建flutter的环境:传送门首先看一下我们的我们今天的demo构建出来的是啥样子的这篇文章我们要讲的东东有a. layout结构 b. navBar c. tabbar和列表组件的使用 d. http请求JSON数据,并渲染到列表 e. 组件之间的通信 f. 路由(带...原创 2018-06-16 16:42:36 · 37025 阅读 · 4 评论 -
iOS 如何在现有的工程引入Flutter?
前言Flutter 是一个很有潜力的框架,但是目前使用Flutter的APP并不算很多,相关资料并不丰富,介绍现有工程引入Flutter的相关文章也比较少。项目从零开始,引入Flutter操作比较简单,但是现有工程引入Flutter 需要费很多精力和时间,这里是我在完成现有iOS工程引入Flutter后写的一次总结文章。Flutter 环境搭建首先是要搭建Flutter环境,之前也写了一篇相...原创 2018-11-16 08:40:23 · 4224 阅读 · 0 评论 -
iOS 搭建Flutter开发环境
一、 获取Flutter工程现在发布的是beta 版本,可以用git clone -b beta https://github.com/flutter/flutter.git也可以切换到master分支,使用master分支的代码二、将flutter加入path打开.bash_profile(一般在Mac的当前用户目录下),编辑添加:export PATH=[flutter工程目...原创 2018-11-15 08:47:12 · 3747 阅读 · 1 评论 -
Flutter 中 json 字符串与 Map 相互转化
前言近期项目从 OC 转 Flutter 过程中,接口调用返回数据时 json 字符串转 Map。总结一下:遇到的问题:使用 toString() 方法能将对象转换成字符串,但是会丢失引号等信息,不再是标准 JSON,导致服务端解析不正常json转换为字符串import 'dart:convert' as convert;/// json转换为字符串void testJson2Str...原创 2019-09-27 11:18:58 · 40094 阅读 · 3 评论