摘要:一,问题场景 ScrollView嵌套ListView滚动冲突 二,解决办法 禁用ListView的滑动 三,示例
阅读全文
摘要:一,问题场景 shrinkWrap多用于嵌套listView中 内容大小不确定 比如 垂直布局中 先后放入文字 listView (需要Expend包裹否则无法显示无穷大高度 但是需要确定listview高度 shrinkWrap使用内容适配不会有这样的影响) 二,解决办法 设置ListView/G
阅读全文
摘要:一,概述 Flutter的入口在"lib/main.dart"的main()函数中,它是Dart应用程序的起点。在Flutter应用中,main()函数如下: #runApp()方法: 参数app是一个Widget,它是Flutter应用启动后要展示的第一个Widget。而WidgetsFlutte
阅读全文
摘要:一,概述 每个Element都对应一个RenderObject,我们可以通过Element.renderObject 来获取。并且我们也说过RenderObject的主要职责是Layout和绘制,所有的RenderObject会组成一棵渲染树Render Tree。 RenderObject就是渲染
阅读全文
摘要:一,前言 其实,Element与BuildContext之间的关系我们是可以通过源码分析的。 二,Element: 最终的UI树其实是由一个个独立的Element节点构成。组件最终的Layout、渲染都是通过RenderObject来完成的。 Element就是Widget在UI树具体位置的一个实例
阅读全文
摘要:一,概述 UI系统: 基于一个平台,在此平台上实现GUI的一个系统,这里的平台特指操作系统,如Android、iOS或者Windows、macOS。各个平台UI系统的原理是相通的,也就是说无论是Android还是iOS,他们将一个用户界面展示到屏幕的流程是相似的。 二,UI系统: 硬件绘图基本原理
阅读全文
摘要:一,概览 这块的内容比较多且有些复杂,为了不让大家迷失在源码的海洋里,我们还是举个例子先简单了解一下这个体系。 void main() { runApp(MyWidget()); } class MyWidget extends StatelessWidget { final String _mes
阅读全文
摘要:一,前言 写过Flutter程序的同学都知道,Flutter app的入口就是函数runApp()。 void main() { runApp(MyApp()); } 那么我们就从函数runApp()入手,看看这个函数被调用以后发生了什么。 二,初始化 runApp()的函数体位于widgets/b
阅读全文
摘要:一,前言 在熟悉了Flutter app开发以后,我们的好奇心会驱使对Flutter框架是如何运行产生诸多疑问,Flutter是如何运转的?Widget到底是什么东西?RenderObject又是个什么鬼?runApp()之后发生了什么?调用sateState()之后页面又是如何刷新的?要解答这些问
阅读全文
摘要:参考 1.入门: 在macOS上搭建Flutter开发环境 系统要求 2.Mac 打开、编辑 .bash_profile 文件 1.打开终端 2.clone flutter 命令: 到此步终端报错: error: RPC failed; curl 18 transfer closed with ou
阅读全文