Flutter是什么Flutter是一个UI SDK(Software Development kit),可以作为移动端(iOS、Android)、Web端、桌面的跨平台解决方案。Flutter的特点使用Flutter内置美丽的Material Design和Cupertion widget、丰富的motion API、平滑而自然的滑动效果和平台感知,为您的用户带来全新的体验。Flutter的UI
转载 6月前
20阅读
前面我们分析了Widget,发现源码非常简单,主要逻辑就是构建子树,以及是创建Element。 那Element有何神奇?且看Element。首先我们看下Element家族的继承关系:我们可以看到Element系列庞大,但跟我们平常开发关系比较大却不多。接下来我们会主要围绕这个继承关系图,逐个分析主要的类。DiagnosticableTree这个没什么好说的,就是一堆方便处理调试信息的。Widge
 学习Flutter一段时间了,前几天小伙伴在看唯鹿项目的时候提到的provider,多数人都是用redux,之前在做react-native项目的时候使用的是redux,但是对于Flutter还是新的认识,后来在博客上触到google推荐的Provider,于是小小的学习了下,按照亢少军老师的《Flutter技术入门与实战》的计数器的小例子进行记录学习下:第一步,添加Provider依
转载 9月前
44阅读
我们考虑一个这样的布局:一个滑动的视图中包括一个标题视图(HeaderView),一个列表视图(ListView),一个网格视图(GridView)。我们怎么可以让它们做到统一的滑动效果呢?使用前面的滚动是很难做到的。Flutter中有一个可以完成这样滚动效果的Widget:CustomScrollView,可以统一管理多个滚动视图。在CustomScrollView中,每一个独立的,可滚动的Wi
老孟导读:昨天Flutter 1.17版本重磅发布,新的版本主要是优化性能、修复bug,有人觉得此版本毫无亮点,但也从另一方面体现了Flutter目前针对移动端已经较为完善,可以在其内部嵌套其他滚动视图的滚动视图,其滚动位置是固有链接的。在普通的ScrollView中, 如果有一个Sliver组件容纳了一个TabBarView,它沿相反的方向滚动(例如,允许用户在标签所代表的页面之间水平滑动,而列
转载 2024-10-13 17:40:51
143阅读
ImageFlutter中,可以通过Image来加载并显示图片,Image的数据源可以是asset、文件、内存以及网络等。在实际应用中,用到比较多的数据源是asset和网络。一、从asset中加载图片从asset中加载图片需要三步:1、在工程根目录下创建一个images的目录,将需要展示的图片(如a.png)放在该目录下。2、在pubspec.yaml中的flutter部门添加在images目录下
转载 2024-07-14 08:11:50
185阅读
1. 前言说起 AppBar 组件,大家都比较熟悉,默认情况下是一个 Material 风格的头部标题栏。可能有人疑惑,这么简单的东西,有什么好说的?其实该组件一些重要的属性很多人都不知道,另外在使用过程中有一些细节,本文将结合 使用 和 源码 来详细探讨一下 AppBar 组件。如下是 Material2 和 Material3 风格下默认的 AppBar 展示效果:| Material2 |
转载 2月前
360阅读
今天给大家带来的是堪称是一个可以替代SQLite,Core Data 的以及ORMlibraries的轻量级数据库—Realm移动端数据库。相比SQLite,Realm更快并且具有很多现代数据库的特性,比如支持JSON,流式api,数据变更通知,以及加密支持,这些都为IOS开发者带来了方便。Ream提供了五种编程方式的实现。分别是Java,Objective C,Swift,React-Nativ
转载 5月前
24阅读
1、耗时操作(IO)处理在开发中针对如何处理耗时的操作,不同的语言有不同的处理方式处理方式一: 多线程,比如Java、C++,我们普遍的做法是开启一个新的线程(Thread),在新的线程中完成这些异步的操作,再通过线程间通信的方式,将拿到的数据传递给主线程。处理方式二: 单线程+事件循环,比如JavaScript、Dart都是基于单线程加事件循环来完成耗时操作的处理。不过单线程如何能进行耗时的操作
转载 2月前
389阅读
作者丨齐翊背景嵌套层级深的问题让众多刚接触Flutter的同学感到困扰,它不仅是看起来让人感到不适,还非常影响编码体验。大佬们会告诉你应该拆分自己的嵌套代码(自定义widget或者抽取build方法)来减少嵌套层级。这确实是个行之有效的方法,除此之外,还有没有别的方法呢,本文将向您介绍另一种减少嵌套层级的方法。嵌套过深影响代码的视觉观感这段代码演示了什么叫做:嵌套地狱class Test exte
转载 8月前
191阅读
GitHub Actions可轻松实现所有软件工作流程的自动化。直接从GitHub构建,测试和部署代码。使代码审查,分支机构管理和问题分类工作按您想要的方式进行。记得在19年底的时候,我看到了Run Flutter Driver tests on GitHub Actions这篇文章,随即就开始在flutter_deer中去使用,因为当时项目中刚好就有写好的集成测试。当时在flutter_deer
转载 10月前
39阅读
2019 Google I/O 大会,Flutter 团队在“Pragmatic State Management in Flutter ”演讲上正式介绍了 Provider。自此,Provider 代替 Provide 成为官方推荐的状态管理方式之一。本文将基于最新 Provider v-3.0 进行介绍,除了讲解其使用方式之外,重点介绍了 Provider 不同“提供”方式
Flutter本身提供了路由机制,作个人的小型项目,完全足够了。但是如果你要作企业级开发,可能就会把入口文件变得臃肿不堪。而再Flutter问世之初,就已经了企业级路由方案fluro。flutter_fluro简介fluro简化了Flutter的路由开发,也是目前Flutter生态中最成熟的路由框架。GitHub地址:https://github.com/theyakka/fluro它出现的比较早
转载 3月前
412阅读
前言Flutter默认不支持上拉加载,下拉刷新也仅仅支持Material的一种样式。Android开发使用过SmartRefreshLayout的小伙伴都知道这是一个强大的刷新UI库,集成了很多出色的动画效果,并且对自定义支持非常好。接下来给大家介绍的就是,Flutter版本的刷新UI库---flutter_easyrefresh,在功能方面已经很接近Android的SmartRefreshLay
转载 2024-07-03 21:37:18
499阅读
效果:说明:绿色块在向上滑动,距离顶部 103 的高度(即 AppBar 下面)时固定示例 1:解决问题的关键是修正 paintOffset,以使最终的 offset 在 pinned 位置固定不变。(不推荐使用,示例 3 中有说明原由)class PinnedSliverPage extends StatefulWidget { const PinnedSliverPage({Key? ke
转载 2024-07-25 13:22:46
32阅读
可滚动组件简介当组件内容超过当前显示视口(ViewPort)时,如果没有特殊处理,Flutter则会提示Overflow错误。为此,Flutter提供了多种可滚动组件(Scrollable Widget)用于显示列表和长布局。我们先介绍一下常用的可滚动组件(如ListView、GridView等),然后介绍一下ScrollController。可滚动组件都直接或间接包含一个Scrollable组件
转载 2024-04-11 20:02:54
324阅读
其实冲突的来源主要是Column 包裹了一层ListView解决方案也是非常的时尚两句代码
原创 2023-03-16 09:22:12
415阅读
这节课学习一下上拉加载效果,其实现在上拉加载的插件有很多,但是还没有一个插件可以说完全一枝独秀,我也找了一个插件,这个插件的优点就是服务比较好,作者能及时回答大家的问题。我觉的选插件也是选人,人对了,插件就对了。flutter_easyrefresh简介flutter_easyrefresh官方简介:正如名字一样,EasyRefresh很容易就能在Flutter应用上实现下拉刷新以及上拉加载操作,
前言今天偶然发现在谷歌爸爸的仓库下出现了一个叫做flutter-provide的状态管理框架,2月8日才第一次提交,非常新鲜。在简单上手之后感觉就是一个字——爽!所以今天就跟大家分享一下这个新的状态管理框架。Provider被设计为ScopedModel的替代品,并且允许我们更加灵活地处理数据类型和数据。但是首先呢还是先说说老生常谈的状态管理。为什么需要状态管理在我们一开始构建应用的时候,也许很简
转载 6月前
23阅读
背景嵌套层级深的问题让众多刚接触Flutter的同学感到困扰,它不仅是看起来让人感到不适,还非常影响编码体验。大佬们会告诉你应该拆分自己的嵌套代码(自定义widget或者抽取build方法)来减少嵌套层级。这确实是个行之有效的方法,除此之外,还有没有别的方法呢,本文将向您介绍另一种减少嵌套层级的方法。嵌套过深影响代码的视觉观感这段代码演示了什么叫做:嵌套地狱class Test extends S
  • 1
  • 2
  • 3
  • 4
  • 5