随笔分类 -  flutter

上一页 1 2

flutter 基础 —— 缓存页面与滚动位置等信息
摘要:一、缓存页面 比如 Tab 切换,旧的 Tab 可能被销毁,我们需要做缓存。 解决方法:如果是 PageView 可以更改 allowImplicitScrolling 值为 true,会缓存前后各一页。 其它组件,可以实现 AutomaticKeepAliveClientMixin 接口。 注:T 阅读全文

posted @ 2022-08-16 14:55 Lemo_wd 阅读(803) 评论(0) 推荐(0)

flutter 效果实现 —— NestedScrollView 嵌套滚动(多固定头)
摘要:效果 有点类似 flexibleSpace,但是 flexibleSpace 的 expandedHeight 得预留计算出来。这里的头图的大小可以自适应,不用显式设置 expandedHeight。 注:最新版本可以使用 SliverMainAxisGroup 实现相关需求(存疑?) 代码 注:请 阅读全文

posted @ 2022-08-15 22:39 Lemo_wd 阅读(4677) 评论(0) 推荐(0)

flutter 常见组件的特殊用法 —— SliverAppBar
摘要:SliverAppBar 的滚动布局 特殊属性说明 primary: true 不同于 AppBar 通常有 Scaffold 包裹,其最大高度由父类约束。SliverAppBar 完全由自身决定。 当 primary 等于 true 时,其 topPadding 等于状态栏高度;若为 false, 阅读全文

posted @ 2022-08-14 13:56 Lemo_wd 阅读(4577) 评论(0) 推荐(0)

flutter 常见组件的特殊用法 —— AppBar
摘要:AppBar 的高度与 PreferredSizeWidget 通常可以观察到 Scaffold.appBar 与 AppBar.bottom 属性,要求其值必须是 PreferredSizeWidget(典型的是 AppBar 与 TabBar 组件)。 abstract class Prefer 阅读全文

posted @ 2022-08-13 03:38 Lemo_wd 阅读(1361) 评论(0) 推荐(0)

flutter 效果实现 —— 无AppBar下列表滚动时状态栏透明度变化
摘要:效果 此效果参考自 twitter 与 gmail 实现原理 通过 Stack 组件,在最上层页面的状态栏位置用一个白色的容器占位,在列表滚动时,根据监听到的滚动位置动态调整其透明度。 PS:也可以借助 AppBar 实现,只要设置 Scaffold.extendBodyBehindAppBar 等 阅读全文

posted @ 2022-08-13 02:28 Lemo_wd 阅读(432) 评论(0) 推荐(0)

flutter 常见组件的特殊用法 —— Scaffold
摘要:scaffold 中 body 的 初始位置 通常 body 内容的初始滚动位置位于状态栏或导航栏之下。但某些情况下需要调整初始位置: 具体分以下几个情况讨论: 1、对于非 ListView 组件 ① 在AppBar 不存在时,亦即状态栏未被 AppBar 占用: body 会占满状态栏,跟 ② 中 阅读全文

posted @ 2022-08-11 21:26 Lemo_wd 阅读(2157) 评论(0) 推荐(0)

flutter —— 布局原理与约束
摘要:一、布局模型 主要有两种布局模型: ① 基于 RenderBox 的盒模型布局。 ② 基于 Sliver ( RenderSliver ) 按需加载列表布局。(Sliver 布局请看) 两种布局方式在细节上略有差异,但大体流程相同,布局流程如下: 上层组件向下层组件传递约束(constraints) 阅读全文

posted @ 2022-07-27 11:22 Lemo_wd 阅读(736) 评论(0) 推荐(1)

flutter —— getx 中各种工具方法
摘要:本地化 略(建议配合 get_cli 相关命令使用) 更新 locale var locale = Locale('en', 'US'); Get.updateLocale(locale); 获取系统的 locale return GetMaterialApp( locale: Get.device 阅读全文

posted @ 2022-01-23 14:53 Lemo_wd 阅读(1432) 评论(0) 推荐(0)

flutter —— 使用 getx 进行路由管理
摘要:路由 基础方法 Get.toNamed("/NextScreen"); Get.offNamed("/NextScreen"); Get.offAllNamed("/NextScreen"); 路由传参 Get.toNamed("/NextScreen", arguments: 'Get is th 阅读全文

posted @ 2022-01-23 14:31 Lemo_wd 阅读(2593) 评论(0) 推荐(0)

flutter —— 使用 getx 进行状态管理
摘要:简单状态管理器 GetxController 有一个 update 方法,用于触发更新操作。 类似于 ChangeNotifier 中的 notifyListeners 方法 源码 abstract class GetxController extends DisposableInterface w 阅读全文

posted @ 2022-01-23 14:00 Lemo_wd 阅读(2250) 评论(0) 推荐(0)

flutter 基础 —— CustomScrollView 与 Slivers
摘要:一、CustomScrollView 的作用 创建一个公共的 Scrollable 和 Viewport ,然后它的 slivers 参数接受一个 Sliver 数组 二、常用 Sliver 组件对照表 滚动 sliver Sliver名称功能对应的可滚动组件 SliverList 列表 ListV 阅读全文

posted @ 2022-01-16 16:39 Lemo_wd 阅读(436) 评论(0) 推荐(0)

flutter 基础 —— CustomPaint 动画效果
摘要:路径动画 示例: 代码 //路径动画 var path = Path() ..moveTo(50, 50) ..lineTo(100, 100) ..lineTo(200, 90); var rect1 = Rect.fromCircle(center: Offset(80, 450), radiu 阅读全文

posted @ 2022-01-12 23:12 Lemo_wd 阅读(487) 评论(0) 推荐(0)

flutter 基础 —— CustomPaint 解析
摘要:基础介绍 实现自定义组件大致有三种方式,第一种是组合现有的组件;第二种是直接构建 RenderObject,比如 ColoredBox 组件;第三种就是下面介绍的,CustomPaint,它与第二种类似,都是通过 canvas 去绘制图形。 坐标 (注意Y轴正方向是向下,数学中是向上) Custom 阅读全文

posted @ 2022-01-12 10:52 Lemo_wd 阅读(600) 评论(0) 推荐(0)

上一页 1 2

导航