在 Flutter 中一切皆是 组件,仅仅 Widget 的子类和间接子类就有 350 多个,整理的 Flutter组件继承关系图 可以帮助大家更好的理解学习 Flutter,回归正题,如此多的组件到底如果学习,真的需要学习 350 多个组件? 在经济学中有一个著名的 二八定律 二八定律是意大利经济学家帕累托发现的.帕累托认为任何一组东西中最重要的只占其中一小部分约占20%,其余80%尽管是多数,却是次要的. 而我们学习 Flutter 也适用于二八定律,大部分组件是平时很少用到的,因此作为初学…
引言 在漫长的从Native向Flutter过渡的混合工程时期,要想平滑地过渡,在Flutter中使用Native中较为完善的控件会是一个很好的选择.本文希望向大家介绍AndroidView的使用方式以及在此基础之上拓展的双端嵌入Native组件的解决方案. 1. 使用教程 1.1. DemoRun 嵌入地图这一场景可能在很多App中都会存在,但是现在的地图SDK都没有提供Flutter的库,而自己开发一套地图显然不太现实.这种场景下,使用混合栈的形式是一个比较好的选择.我们可以直接在Nativ…
在 Android 应用程序开发过程中,我们经常会用到一些所谓的架构方法,如:mvp,mvvm,clean等.之所以这些方法会被推崇是因为他们可以大大的解耦我们的代码的功能模块,让我们的代码在项目中后期更容易扩展和维护. 我个人比较推荐 mvp,主要是因为其相对比较简单且易上手,这次我将给大家介绍如何在 Flutter 中使用 mvp 来组织项目的功能模块.为了演示方便,我选择了一个比较简单的通讯录列表来为大家做演示. MVP 首先需要准备 mvp 鼎鼎有名的两个类:IView和IPrensen…
概览 在 Flutter 中,大概大家都知道如何更新界面视图: 通过修改 Stata 去触发 Widget 重建,触发和更新的操作是 Flutter 框架做的. 但是有时即使修改了 State,Flutter 框架好像也没有触发 Widget 重建, 其中就隐含了 Flutter 框架内部的更新机制,在某些情况下需要结合使用 Key,才能触发真正的"重建". 下面将从 3 个方面 (When, Where, Which) 说明如何在合理的时间和地点使用合理的 Key. When: 什么…
今天我们来聊聊Flutter中的日期和日期选择器. Flutter中的日期和时间戳 //日期时间戳转换 var _nowTime = DateTime.now();//获取当前时间 print(_nowTime); print(_nowDate.millisecondsSinceEpoch); //13位时间戳 1575389234667 print(DateTime.fromMillisecondsSinceEpoch()); //时间戳转为日期2019-12-03 16:07:14.667…
FloatingActionButton 简称 FAB,从字面理解可以看出,它是“可交互的浮动按钮”,其实在Flutter默认生成的代码中就有这家伙,只是我们没有正式的接触. 一般来说,它是一个圆形,中间放着图标,会优先显示在其他Widget的前面.一般可以实现浮动按钮,也可以实现类似闲鱼 app 的底部凸起导航 . 常用属性 FloatingActionButton的常用属性,同flutter中其他按钮的常用属性大部分相同,但是也有特殊的: child :子视图,一般为 Icon,不推荐使用文…
前言:生命周期是一个组件加载到卸载的整个周期,熟悉生命周期可以让我们在合适的时机做该做的事情,flutter中的State生命周期和android以及React Native的生命周期类似. 先看一张生命周期的流程图: 大致可以分为3个阶段: 初始化状态变化组件移除初始化State初始化时会依次执行 : 构造函数 > initState > didChangeDependencies > Widget build , 此时页面加载完成. 然后我们看一下每个函数的意义: 构造函数调用次数:…
Flutter中的日期和时间戳 //獲取當前日期 DateTime _nowDate = DateTime.now(); print(_nowDate);//2019-10-29 10:57:20.384872 print(_nowDate.millisecondsSinceEpoch);//時間戳,1572317840384 print(DateTime.fromMicrosecondsSinceEpoch(1572317840384));//時間戳轉換日期,1970-01-19 12:45:…
一.Flutter 常用表单介绍   Flutter 中常见的表单有 TextField 单行文本框,TextField 多行文本框.CheckBox.Radio.Switch  CheckboxListTile.RadioListTile.SwitchListTile.Slide.   二.TextField 文本框组件   TextField 表单常见属性:   maxLines  设置此参数可以把文本框改为多行文本框   onChanged  文本框改变的时候触发的事件   decorat…
本文是Flutter中Canvas和CustomPaint API的使用实例. 首先看一下我们要实现的效果: 结合动图演示,列出最终目标如下: 在程序运行后,显示一个小球: 每次程序启动后,小球的样式均发生随机性变化,体现在大小.颜色和位置三点: 小球运行的规律参考桌球或三维弹球游戏: 单击屏幕,小球变色: 双击屏幕,小球暂停/恢复运动: 长按屏幕,小球开始/停止自动变色. 运用的主要技术点: Canvas和CustomPaint API. 运行平台: Android.iOS 源码地址: Git…