Flutter开发
flutter开发笔记
正义啊
安卓工程师
展开
-
Flutter 自定义Widget——风车实现
最近在做一个天气模块的时候,风力需要显示一个选择的风车,实现效果如下:需求分析我们可以把上面的效果拆分为两个部分实现:1、画一个风车的WindmillWidget2、旋转动画一、风车Widget实现风车Widget 效果如下:这里又可以把它拆分为如下三部分实现:3片扇叶中间的圆点圆柱圆点和圆柱都比较好实现,最主要还是三片扇叶的实现。扇叶的实现思路是:先在原点(0,0...原创 2019-12-23 15:35:08 · 541 阅读 · 0 评论 -
Flutter RxBus实现
刚刚使用RxDart简单实现了EvnetBus效果,github地址:flutter_rxbus用法一:在pubspec.yaml引入dependencies: flutter_rxbus: ^0.0.11、注册 ///注册接收T类型消息 RxBus.getInstance().register<T>((value) { });2、发送消息...原创 2019-12-13 14:15:21 · 469 阅读 · 0 评论 -
Flutter pageview indicator指示器实现
最近正好用到pageview,发现官方好像没有提供指示器。去pub上搜了一下indicator,点了star最多的一个看了下,发现他的刷新好像和我需要的不匹配。最后还是决定自己实现一下吧。效果图项目地址flutter_page_indicator源码pub上的项目indicator圆点好像都是用paint画的。我的第一印象其实就是最外层用Stack包裹,里面放普通圆点和当前位置圆点。...原创 2019-12-11 13:43:13 · 1979 阅读 · 0 评论 -
Flutter局部刷新
在Flutter中,如果我们想要更新页面中的某个widget的状态的话,一般会使用setState方法重走build方法来刷新。当页面布局复杂的时候,这样肯定是不行的。下面提供了两种局部刷新的方式,通过provider和StreamBuilder来实现局部刷新1、通过provider刷新首先在pubspec.yaml中添加provider依赖 # provider provider:...原创 2019-12-09 16:04:16 · 8135 阅读 · 8 评论 -
Flutter补间动画
作为一个移动端UI框架,Flutter 也拥有自己的动画体系。分类Flutter 动画分为两类:补间动画(Tween)和 基于物理的动画。本文主要介绍第一类动画。动画的基本类Animation<T>Animation是一个抽象的类,主要保存动画的状态和当前值。最常用的Animation类时Animation<double>T 有很多类型,如Color、Offs...原创 2019-08-23 16:54:29 · 1649 阅读 · 0 评论 -
Flutter点击水波纹效果封装
在flutter中, 普通Widget是没有点击效果的,设置点击事件的时候点着没有感觉。可以利用Flutter提供的水波纹widget来对控件进行包裹,这样就有点击效果了。1、使用InkWell实现child点击水波纹效果class RippleWidget extends StatelessWidget{ final Function onTap; final Widget ch...原创 2019-12-05 15:37:46 · 1022 阅读 · 0 评论 -
Flutter 在initState()方法中页面跳转异常
情景描述:1、需要在initState()中做一些判断,然后需要在initState()跳转页面2、在initState()中加载数据,显示加载弹框。之前遇到过第一种情况,可能需要在initState()中做页面跳转,后来想办法避免了。今天一不小心又遇到了,在initState()方法中有个loadData()方法,加载数据的。加载数据的时候,显示loading弹框实际就是跳转一个l...原创 2019-10-23 13:55:30 · 3623 阅读 · 0 评论 -
自定义Flutter loading弹框
先看效果图如下:在Flutter中,万物皆widget。所以这所谓的弹框其实也是一个widget。而现实弹框其实就是打开一个新的路由,只不过背景颜色设为透明色就行了。布局代码实现代码如下:class LoadingDialog extends Dialog { @override Widget build(BuildContext context) { return ...原创 2019-09-28 16:43:23 · 10931 阅读 · 3 评论 -
Flutter 使用Dio请求返回数据不是Json字符串,而是Json对象
今天用使用Dio加载数据的时候出现一个异常,就是返回的数据是一个json对象,而不是json字符串,导致无法使用json解析。错误返回如下:{title: book, content: think in java}正常数据应该是这样的:{"title":"book","content":"think in java"}经过一番查找后发现官网上有一段备注的:说当响应头的conten...原创 2019-09-28 14:45:53 · 7570 阅读 · 3 评论 -
Flutter AndroidX冲突解决
新项目准备用Flutter开发,把所有的东西都更新以后,运行项目发现报了AndroidX和support冲突的问题。决绝办法有两种:一、将 compileSdkVersion 版本号降低到28以下。使用support版本二、使用AndroidX版本官方链接:https://flutter.dev/docs/development/packages-and-plugins/androi...原创 2019-09-20 16:18:31 · 1721 阅读 · 0 评论 -
Flutter: There are multiple heroes that share the same tag within a subtree异常
今天写Demo的时候遇到了下面的错误:I/flutter: ══╡ EXCEPTION CAUGHT BY SCHEDULER LIBRARY ╞═════════════════════════════════════════════════════════I/flutter: The following assertion was thrown during a scheduler cal...原创 2019-08-29 15:02:29 · 5223 阅读 · 3 评论 -
Flutter路由管理和接收页面的返回值
Flutter使用Navigator进行路由管理。跳转页面使用Navigator的push方法进行跳转。可以看到总共有6个push方法1、push(route) 通过路由跳转通过路由进行跳转 Navigator.of(context).push(MaterialPageRoute(builder: (context){ return MyApp...原创 2019-08-01 11:18:59 · 4823 阅读 · 0 评论 -
Flutter_Weather今日热点模块实现
Flutter_Weather今日热点模块实现,效果图如下:首页布局实现代码如下: @override Widget build(BuildContext context) { return _buildTabController(); } Widget _buildTabController(){ if(tabs.length == 0){ ...原创 2019-07-31 21:13:32 · 428 阅读 · 3 评论 -
Flutter Weather天气模块实现
本文介绍Flutter_Weather天气模块实现。效果图如下:项目地址:https://github.com/Zhengyi66/Flutter_weather首页最外层布局实现首页包含一个顶部的城市名称展示栏和一个pageview。因此可以使用一个Column竖直的列进行包裹。 return Container( child: Column( chi...原创 2019-07-31 19:24:43 · 1398 阅读 · 0 评论 -
使用Flutter开发的一款天气预报APP
前段时间看了下Flutter相关资料,看完感觉还是啥都不会,还是写个小APP还练习一下吧。原创 2019-07-31 14:24:53 · 1875 阅读 · 0 评论