150多个Flutter组件详细介绍送给你
迷茫是什么,迷茫就是大事干不了,小事不想干,能力配不上欲望,才华配不上梦想。
150+Flutter组件详细介绍地址:http://laomengit.com/
前言
我在Flutter未正式发布之前就开始学习了,因为Fuchsia系统,随着5G的发展,物联网将会迎来爆发式的增长,目前的市场上还没有一款物联网系统占据主导地位,虽然Google没有说Fuchsia是为物联网而生,但你理解Fuchsia系统的特性你就会明白此系统非常适合物联网,因此Flutter的发展前景不可限量。
在学习Flutter的过程中,中文资料非常少,官方的文档比较晦涩难懂,而且没有相关demo,这就是此网站诞生的初衷,希望能够帮助广大Flutter初学者,这里没有高深的技术,有的只是一个个控件的基础用法。
目前已经整理了150+的组件,而且将相近的组件放在了一起,比如Button组件,系统提供了10多种Button类组件,虽然索引是按照字母排序的,但不管你看哪一个Button,都可以看到其他Button的相关用法。
Flutter官方提供的Widget超过了300,个人的精力实在有限,如果你也希望帮助到别人,欢迎投稿,将会在其底部展示作者以及作者博客地址。
欢迎大家加入Flutter交流群(微信:laomengit)或者扫描下方二维码:

也欢迎大家关注我的公众号【老孟程序员】,文章及相关资源(正在准备控件的PDF以及大量相关demo)会在公众号首发,扫描关注:

未来规划
- 此网站的移动端已经在开发了,到时可以从手机上学习相关知识。
- 虽然Flutter是一个UI框架,但仅仅是UI是无法构成一个完整的App 的,因此下一步重点是介绍功能性的技术,比如网络加载数据、保存数据、混合开发等。
- 小demo的开发,我也在写一个大而全的项目还是小而精的项目上思考了很久,最后我选择了小而精的项目,原因是小的项目可以让大家更快的关注到重点,适合学习,比较大的项目比较难以入手。
Flutter会不会火?
我收到了很多关于要不要学Flutter?Flutter会不会火的问题?说实在我也不知道,任何事物的发展壮大天时地利人和缺一不可,技术本身优势仅仅是最基本的一个方面,我只能说Flutter的概率比较大而已,就像你和马云的儿子谁更有希望成为亿万富翁一样,我只能说Flutter的发展前景不可限量。
其实很多东西的学习,尽快入坑学习、动手实践远比畏畏缩缩、进度停留了解阶段要好得多,这是一个很简单的道理,可是偏偏很多人不明白或者做不到。如果你可以做到这样,不得不说这也是一种优势。
Flutter的使用情况
我知道你一定非常关注目前各个公司使用Flutter的情况,尤其头部互联网公司,据我所得到的消息(当然我也在头部互联网公司)目前各大互联网公司的头部App基本很少使用,为什么?原因很简单,
- Flutter从正式发布至今才2年,到底如何谁心里也没底,能不能禁得住市场的考验都是一个未知数。
- Flutter目前的包体积居高不下,头部App对包体积要求非常严格,都是以KB为单位的,即使一个空的Flutter项目都好几“MB”。
虽然头部App使用很少,但都在内部项目或者次级项目尝试Flutter。
小公司和个人开发者目前使用Flutter技术的非常多,没有进入过跨平台开发的人永远体会不到跨平台开发的便利,跨平台开发的人很难在回到原生开发了,除非你是为了五斗米折腰。
记住跨平台开发是历史趋势,从当初的H5到React Native,在到现在的Flutter,都是为了解决跨平台开发,提高开发效率,历史的车轮不会停止,即使不是Flutter,也会出现另一个Flutter。
关于Flutter版本
Flutter发展速度之快超乎你的想象,在查资料的时候注意版本,旧的版本在新的版本可能已经废弃了,尤其在混合开发方面。因此本站所有的文章如无特殊说明,Flutter版本及Dart版本如下:
- Flutter版本: 1.12.13+hotfix.5
- Dart版本: 2.7.0
如何学习Flutter
本站虽然整理了150+的控件基本用法,以后也会继续完善,但并不是让你每一个都学习一遍,任何技术基本都是掌握20%就可以解决80%的问题,因此我整理了一些常用控件,只需学会这些基础控件就可以上手项目了,至于其他的控件只需大概浏览一下,做项目的时候遇到一些功能能够想起Flutter已经提供了此组件就可以了。
关于Dart语言,如果你有其他高级语言的基础,比如Java,可以不用特意去学Dart基础,更着别人的代码敲,很快就可以掌握了。
最近也在整理学习Flutter的思维导图,等整理好了分享给大家。
开发环境建议
俗话说的好“磨刀不误砍柴工”,一款好的IDE可以极大的提高开发效率,个人建议使用mac(系统)+Android Studio。原因如下:
- 既然使用了Flutter,那么开发的项目应该是移动端App,Flutter的打包最终依然是原生的应用程序。
- Flutter在Android上调试的时候会遇到各种编译不通过的问题,这些需要一些Gradle的基本知识,因此建议使用Android Studio,理解基本编译过程。
- Android编译不过一般是gradle版本、support版本和androidx的问题,这些问题在Android Studio上更好解决。
平时调试的时候可以使用Android Studio+IOS的模拟器进行调试。
开发环境的安装最好按照Flutter官网的步骤来,网上的介绍很可能版本比较老了。
第三方库的使用
在学习阶段建议大家少用第三方库,尤其是一些UI库、状态管理和路由管理的库,这里并不是说这些库不好,这些库很好,是大牛的智慧的结晶,如果你没有经过原生的开发,不了解开发的痛点,你永远无法了解这些库带给你的好处,而且如果这些库一直有人维护那还好,一旦没人维护,出了问题那解决起来可能更麻烦。
那是不是都不用第三方库呢?并不是绝对的,比如网络请求库dio,严格的说这不是Flutter的库,而是Dart的库,此库已经非常稳定。还有涉及大量原生开发的库,原生开发并不是你关注的重点,这些库是可以用的,但要了解Flutter与原生开发的通信机制。
吐槽一下
千万不要和别人说Flutter的UI编写太不好维护了,为什么?因为嵌套啊,我就想问问你你平时一个函数会写1000行吗?你写代码不会封装吗?平时的模块化思想都哪去了?不管H5,还是Android、IOS的UI开发哪一个不是“树”结构。
150多个Flutter组件详细介绍送给你的更多相关文章
- React组件详细介绍及其生命周期函数
组件的详细说明 通过Reac.createClass({...})创建组件的时候,应该有一个render()方法,也可以在其中添加生命周期函数. render方法 当调用该方法的时候,会检测this. ...
- YARN组件详细介绍
一.ResourceManager 内部主要有两个组件: 1.Scheduler:这个组件完全是插拔式的,用户可以根据自己的需求实现不同的调度器,目前YARN提供了FIFO.容量以及公平调度器.这个组 ...
- 微信小程序 icon组件详细介绍
这些是提供的所支持的图标样式,根据需求在此基础上去修改大小和颜色. 主要属性: 使用方式: wxml <!--成功图标--> <icon type="success&quo ...
- Flutter 目录结构介绍、入口、自定义 Widget、MaterialApp 组件、Scaffold 组件
Flutter 目录结构介绍 文件夹 作用 android android 平台相关代码 ios ios 平台相关代码 lib flutter 相关代码,我们主要编写的代 码就在这个文件夹 test ...
- <react> 组件的详细介绍:
<react> 组件的详细介绍: 思维导图: 代码介绍: TodoList:(组件) import React, { Component } from 'react' import Sty ...
- 柯南君:看大数据时代下的IT架构(2)消息队列之RabbitMQ-基础概念详细介绍
一.基础概念详细介绍 1.引言 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼.挣扎?如果是,那么恭喜你,消息服务让你可以很轻松 ...
- Cloudera Manager (centos)安装详细介绍
文章全部来自:Cloudera Manager (centos)安装详细介绍http://www.aboutyun.com/thread-9190-1-1.html(出处: about云开发) 这里已 ...
- Tkinter 控件详细介绍
Tkinter 控件详细介绍 1.Button 按钮.类似标签,但提供额外的功能,例如鼠标掠过.按下.释放以及键盘操作/事件 2.Canvas 画布.提供绘图功能(直线.椭圆.多边形.矩形) ;可以包 ...
- kvm详细介绍
KVM详解,太详细太深入了,经典 2016-07-18 19:56:38 分类: 虚拟化 原文地址:KVM详解,太详细太深入了,经典 作者:zzjlzx KVM 介绍(1):简介及安装 http:// ...
随机推荐
- spring和hibernate的集成
集成关系图: 项目目录树: User.java package com.donghai.bean; public class User { private String id; private Str ...
- MyBatis学习总结之一对多映射
1.首先创建2张表:students 和grades create table grades( gid ) primary key, gname varchar() ); create table s ...
- 第二类Stirling数推导
- zctf 2016 android writeup - Jieming的博客
本文为2016年zctf中android的writeup. 首先点我下载题目.使用jeb反编译,对username和password进行部分验证后,再将username+password及一个数据库查 ...
- 华为Mate 10牵手Microsoft Translator,让离线翻译可媲美在线神经网
编者按:日前,华为新发布的Mate 10手机系列采用Microsoft Translator技术实现了AI驱动型离线翻译功能.华为Mate 10是首款具有NPU(专用神经处理单元)的手机,可用于加速 ...
- 《深入理解 Java 虚拟机》读书笔记:类文件结构
正文 一.无关性的基石 1.两种无关性 平台无关性: Java 程序的运行不受计算机平台的限制,"一次编写,到处运行". 语言无关性: Java 虚拟机只与 Class 文件关联, ...
- ZYNQ自定义AXI总线IP应用——PWM实现呼吸灯效果
一.前言 在实时性要求较高的场合中,CPU软件执行的方式显然不能满足需求,这时需要硬件逻辑实现部分功能.要想使自定义IP核被CPU访问,就必须带有总线接口.ZYNQ采用AXI BUS实现PS和PL之间 ...
- python webp转jpg
webp格式转jpg格式 从网页上保存下来的webp格式的图片用ps和一些看图软件打不开,所以需要进行下转换. 直接上py代码.代码用到了PIL库,如果电脑上没有还需要pip install Pill ...
- 微信小程序实战(一)之仿美丽说
被美丽说少女粉吸引,就想着自己也写一个来练练手,正好最近在学习微信小程序.接下来让我们分享一下我的学习历程吧! 选题 其实纠结了好久该仿什么,看到别人都写的差不多了,自己却还没有动手,很着急,那两天一 ...
- python之路-基本数据类型之list列表
1.概述 列表是python的基本数据类型之一,是一个可变的数据类型,用[]方括号表示,每一项元素使用逗号隔开,可以装大量的数据 #先来看看list列表的源码写了什么,方法:按ctrl+鼠标左键点li ...