首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flutter开发-可滚动组件

addAutomaticKeepAlives:该属性表示是否列表项(子组件)包裹在AutomaticKeepAlive 组件中;典型地,在一个懒加载列表中,如果列表包裹在AutomaticKeepAlive...如果列表项自己维护其KeepAlive状态,那么此参数必须置为false。 addRepaintBoundaries:该属性表示是否列表项(子组件)包裹在RepaintBoundary组件中。...当可滚动组件滚动时,列表包裹在RepaintBoundary中可以避免列表项重绘,但是当列表项重绘的开销非常小(如一个颜色块,或者一个较短的文本)时,不添加RepaintBoundary反而会更高效...因此,为了能让可滚动组件能和CustomScrollView配合使用,Flutter提供了一些可滚动组件的Sliver版,SliverList、SliverGrid等。...示例 我们创建一个ListView,当滚动位置发生变化时,我们先打印出当前滚动位置,然后判断当前位置是否超过1000像素,如果超过则在屏幕右下角显示一个“返回顶部”的按钮,该按钮点击后可以使ListView

4.4K20

Flutter 构建完整应用手册-处理手势

那么,我们如何回应基本操作,点击和拖动? 我们将使用GestureDetector部件! 假设我们想要制作一个自定义按钮,当点击时显示snackbar。 我们如何解决这个问题?...虽然我们已经创建了一个自定义按钮来演示这些概念,但Flutter包括一些开箱即用的按钮:RaisedButton,FlatButton和CupertinoButton 完整例子 import 'package...路线 创建条目列表 每个项目包裹在Dismissible部件中 提供“向后消除”指标 1.创建条目列表 这个配方的第一步是创建一个我们可以滑动的项目列表。...有关如何创建列表的更多详细说明,请按照使用长列表配方进行操作。 创建一个数据源 在我们的例子中,我们需要20个样品条目。 为了简单起见,我们生成一个字符串列表。...Dismissible部件中 现在我们正在显示项目列表,我们希望让用户能够每个项目从列表中移除!

1.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

Flutter跨平台移动端开发丨SingleChildScrollView、ListView......

addAutomaticKeepAlives:表示是否列表包裹在 AutomaticKeepAlive widget 中。(在懒加载时,如果设置了包裹那么在此列表项滑出屏幕外时不会被GC。...如果此列表项需要自己维护 KeepAlive 状态,那么此参数需为 false) addRepaintBoundaries:表示是否列表包裹在 RepaintBoundary 中。...(当选择列表包裹在 RepaintBoundary 时,在滚动过程中可以避免重绘,如果此列表项需要自己维护 KeepAlive 状态,那么此参数需为 false) addSemanticIndexes...如果此列表项需要自己维护 KeepAlive 状态,那么此参数需为 false) addRepaintBoundaries:表示是否列表包裹在 RepaintBoundary 中。...(当选择列表包裹在 RepaintBoundary 时,在滚动过程中可以避免重绘,如果此列表项需要自己维护 KeepAlive 状态,那么此参数需为 false) addSemanticIndexes

8.6K51

使用Provider前你应了解Consumer

Flutter的状态管理三足鼎立,明媒正室当Provider莫属,可谓刘备级别的大佬,名正言顺。作为一个喜欢偷懒的人,能省则省。都知道Provider有一把梭,打遍天下无敌手。...可见这里在跳转时、五个组件全部触发build,在第二个页面(紫块)执行方法时竟五个组件全部触发build,其中四个都是不可见的组件,build何用?...二、Consumer来帮忙 这时候使用Consumer包裹需要更新的节点。...百思不得其解,最后一句TMD,按钮上也加了Consumer,被自己蠢死。 众所周知,Flutter只会绘制重建脏表里的元素。所以会直接构建Consumer而非整体。 ?...就这样,所以层次较深时,推荐使用Consumer来更新的粒度变小。

2.6K30

flutter 起步

图片注意点:官网下载flutter包完成安装包zip解压到你想安装Flutter SDK的路径(:C:\src\flutter;注意,不要将flutter安装到需要一些高权限的路径C:\Program...,传入的是一个Widget,但实际上这个Widget需要包裹一个Scaffold以显示该程序使用Material Design风格3. routes(WidgetsApp不支持)声明程序中有哪个通过Navigation.of...Text:文本组件Icon:图标组件CloseButton:关闭按钮的组件BackButton:返回按钮的组件Chip:材料设计中非常有趣的一个组件Divider:分割线的组件Card:卡片状的容器组件...AlertDialog:一个弹框的组件flutter问题:Flutter通过新的代码注入到正在运行的DartVM中,来实现Hot Reload这种神奇的效果,在DartVM程序中的类结构更新完成后,...actions → List - 一个 Widget 列表,代表 Toolbar 中所显示的菜单,对于常用的菜单,通常使用 IconButton 来表示;对于不常用的菜单通常使用 PopupMenuButton

4.4K20

Flutter 状态管理之GetX库

运行好了,效果如下图所示:   当我们点击右下角的浮动按钮之后就会看到屏幕中的数字加1,关于这个里面的内容我在第一篇Flutter文章中就介绍过了,因此下面我们就不过多介绍代码,我们main.dart...使用 StatefulWidget:当小部件的外观和内容需要根据用户交互、数据变化或其他条件动态更新时,需要使用 StatefulWidget,例如表单、列表视图等。   ...三、状态更新UI   下面我们通过状态来更新UI,比如我们点击按钮文本内容改成大写,再点击改成小写,下面我们修改_HomePageState类中的代码,如下所示: class _HomePageState...② 局部刷新   在使用之前我们先将原有的代码分离一下,也就是Application和Activity分开,在lib下创建一个home文件夹,文件夹下新建一个home_page.dart文件,然后我们...最后使用Obx包裹需要局部刷新的组件,例如:Obx(() => Text(test.value)),当可观察变量值更新时,Obx包裹中的内容就会进行刷新。

3100

Flutter实战 | 从 0 搭建「网易云音乐」APP(九、搜索页面、底部播放控制栏)

然后是 UI,不知道有没有童鞋记得我以前写过一篇文章:Flutter Wrap & Chip。 ? 在这里完全就能用得上,而且不需要那么多花里胡哨的,只有一个文字就行了。...common14TextStyle, ), backgroundColor: Color(0xFFf2f2f2), ), )) .toList(), ), 逻辑如下: 1.用 Wrap 包裹住...), ], ); }); }, ) 在点击这个 IconButton 的时候调用 showDialog 方法,然后根据点击的按钮做相应的操作即可...搜索结果页 搜索结果页其实是和「搜索页」在一起的,由搜索状态控制: _isSearching ?...so,控制栏逻辑如下: 1.在播放的时候保存当前歌曲列表和当前 index 到本地2.在重新打开 APP 的时候点击播放可以播放上次播放的歌曲 第一个保存,很简单了,使用 shared_preferences

2.5K10

谈谈flutter中Checkbox复选框的全选与删除【flutter20个实例之三】

2.我们先初始化一下数据,设置顶部信息栏的显示效果 appbar的右侧设置一个编辑按钮,增加点击事件,重置选中的ID和复选框样式 appbar的相关功能可以参考初识顶部导航栏【flutter20个实例之一...list = _list; }); }, ), ], ) 3.listview设置一个可以滚动的列表...当我们点击右上角的编辑时,调出底部的全选和删除操作,但是这个底部样式不随着列表一起滚动 所以我们需要用叠加组件stack两部分功能包含在一起,同时底部的样式要固定在底部 列表的内容样式可以扩散开发,...getItemBottom(),//这里是底部删除全选操作的内容 ], ), ); } 4.底部全选和删除的样式 底部有显示隐藏的逻辑,所以用offstage组件包裹...三、源码 import 'package:flutter/material.dart'; class Mytest extends StatefulWidget { @override _MytestState

3.5K30

Flutter | 滚动组件,ListView,GridVIew等

可滚动组件 当组件内容超过当前显示视口(ViewPort)时,如果没有特殊处理,Flutter 就会提示 Overflow 错误,为此,Flutter 提供了多种可滚动组件,用于显示列表和长布局; 可滚动组件都直接或间接的包含一个...当 ListView 在一个无边界(滚动方向上)的容器中时, shrinkWrap 必须为 true addAutomaticKeepAlives:该属性表示是否列表项(子组件) 包裹在 AutomaticKeepAlive...组件中; 典型的,在一个懒加载的列表中,如果列表包裹在 AutomaticKeepAlive 中,在改了吧划出视口时,他也不会被 GC 回收(垃圾回收),他会使用 KeepAliveNotification...如果列表项自己维护其 KeepAlive 状态,则此参数必须为 false addRepaintBoundaries:表示该属性表示是否子组件包裹在 RepaintBoundary 组件中,当可滚动组件滚动时...,被包裹的可以避免列表重绘,但是列表重绘的开销非常小(如一个颜色块,或者一个较短的文本) 时,不添加 RepaintBoundary 反而会更加高效。

8.4K20

老司机 iOS 周报 #78 | 2019.08.05

iOS 开发舆图 @老峰:本文是来自戴铭的 iOS 开发全景图以及一些相关资料整理,成体系地罗列了 iOS 开发的知识点与技能栈,方便我们在日常开发中查漏补缺,主要包括以下内容: iOS 基础:列表、布局...工具 iOS Continuous Integration with GitLab CI, Fastlane & OTA Installation @: 本文介绍了基于 GitLab 的持续集成、...在本文中,我们讨论的点有: 为什么选择 Gitlab?...Swift 5 for Android is here 一份代码,多端运行一直是我们移动端非常关注的点,业界也有很多不同的方案, Flutter、Qt、React Native、Weex 等等,而这些大多是采用...这次 Google 官方在 B 站发布了一个视频,内容是讲解如何用 Flutter 开发 iOS 应用,由官方的两名工程师讲解,不仅仅讲解技术,更带有不少平台设计美学讲解。

1.1K30

Flutter》-- 6.高级组件

6.1.1 Scrollable组件 在Flutter中,一个可滚动的组件直接或间接包含一个Scrollable组件,它是可滚动组件的基础组件。...如果一个可滚动组件支持Sliver模型,那么该滚动可以子组件分成多个部分,只有当子组件出现在视口中时才会去构建它。...) ) ); } } 示例效果: 6.1.4 CustomScrollView组件 可以使用Sliver模型实现自定义滚动组件,可以包含多个子组件,而且可以这些子组件包裹起来实现一致的滚动效果...bool addAutomaticKeepAlives = true,//是否列表包裹在AutomaticKeepAlive组件中,默认值为true,表示列表项滑出视图窗口时不会被垃圾回收,会保存之前的状态...bool addRepaintBoundaries = true,//是否列表包裹在RepaintBoundary组件中,默认值为true,可以避免列表项的重绘,提高渲染的性能。

10.5K20

Flutter的文本、图片和按钮使用

也有类似概念TextSpan TextSpan定义一个字符串片段该如何控制其展示样式,而将这些有独立展示样式的字符串组装在一起,则能支持混合样式的富文本展示。...图片显示方式很多,资源图片、网络图片、文件图片等,图片格式各不相同,在Flutter也有多种方式加载不同形式、支持不同格式图片: 加载本地资源图片,Image.asset(‘images/logo.png...> print('FlatButton pressed'), child: Row(children: [Icon(Icons.add), Text("Add")],) ); 一个加号...展示效果: 4 总结 UI控件是构建一个视图的基本元素,而文本、图片和按钮则是其中最经典的控件。...这些控件都是Flutter框架中提供的基础控件,用于实现各种不同的视觉效果。在这些控件的build函数中,会根据不同的属性值来创建这些基础控件,并将它们组合在一起,从而实现所需的视觉效果。

40120

你知道吗,Flutter内置了10多种Button控件

注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本:1.12.13+hotfix.5 Dart版本:2.7.0 Flutter内置了10多种Button(按钮)类控件供我们使用...BackButton BackButton是一个material风格的返回按钮,本身是一个IconButton,点击时默认执行Navigator.maybePop即如果路由栈有上一页则返回到上一页。...CloseButton CloseButton是一个material风格的关闭按钮,本身是一个IconButton,点击时默认执行Navigator.maybePop即如果路由栈有上一页则返回到上一页。...ButtonBar ButtonBar并不是一个单独的按钮控件,而是末端对齐的容器类控件,当在水平方向上没有足够空间时候,按钮整体垂直排列,而不是换行。...ToggleButtons ToggleButtons组件多个组件组合在一起,并让用户从中选择,ToggleButtons基础用法如下: List _selecteds = [false,

1.9K30

Flutter | 常用组件分类、概述、实战

Flutter组件的分类 文字类型 容器类型 辅助提示类型 列表类型 系统主题风格类型 交互类型 文字类型 用于描述文字, Text组件,一个普通的文本, 属性有字体的颜色、大小、下划线、删除线...locale: Locale('zh_CN'), // 软包裹 文字是否应该在软断行处断行 //软断行 指 文本中有英文横杆之类的,会自动软断行!!!!!...点击VIEW LICENSES 会跳转到一个默认的协议页面: ?...---- 参考自CSDN的Flutter入门课程 main.dart import 'package:flutter/material.dart'; import 'ContentPage.dart';...//// locale: Locale('zh_CN'), //// // 软包裹 文字是否应该在软断行处断行 //// //软断行 指 文本中有英文横杆之类的

3.8K21

Flutter中构建布局 顶

建立布局 第0步:设置 第1步:绘制布局图 第2步:实施标题行 第3步:实现按钮行 第4步:实现文本部分 第5步:实现图像部分 第6步:把它放在一起 Flutter的布局方法 布置一个小部件 垂直和水平放置多个小部件...第6步:把它放在一起 在最后一步,你这些碎片组装在一起。 这些小部件安排在ListView中,而不是列中,因为在小设备上运行应用程序时,ListView会自动滚动。...内容 对齐小部件 调整小部件 包装小部件 嵌套行和列 要在Flutter中创建行或列,可以一个子窗口小部件列表添加到Row或Column窗口小部件中。...以下示例使用此属性星形图标打包在一起。...ListView: 小部件列为可滚动列表。 Stack: 小部件重叠在另一个小部件之上。 Material Components Card: 将相关信息组织成带有圆角和投影的盒子。

43K10

Flutter 2.8 的新特性【flutter专题17】

Memory 由于 Flutter 频繁地加载 Dart VM 的 “service isolate”,这部分 AOT 代码与应用程序捆绑在一起,因此 Flutter 会同时这两者都读入内存,因此针对内存受限的设备...启用这些跟踪功能中的任何一个后,时间轴包含用于构建的 Widget、布置的渲染对象和绘制渲染对象的新事件(视情况而定)。...在按下 “Profile app start up” 按钮并加载应用程序启动配置文件后,开发者看到为配置文件选择的 “AppStartUp” 用户标签,另外还可以通过在可用用户标签列表中,选择此用户标签过滤器...DartPad DartPad 的改进,其中最大的改进是对更多包的支持,事实上现在有 23 个包可供导入,除了几个 Firebase 服务,该名单包含常用软件 bloc,characters,collection...文章涉及到的链接 官网链家:https://flutter.dev/ 版本列表:https://flutter.cn/docs/development/tools/sdk/releases

2.4K10

Flutter 入门指北之滑动部件(超详细)

前面的小节基本上讲完了常用的部件和容器部件,也可以完成很多的界面,但是又一个问题,假如我们要显示一段文字,比如 一段又臭又长的文字 在界面上显示 1000 次,不难完成吧 // ..省略一些无关代码...最简单的使用方式只需要提供一个 child 即可。现在给前面写的 Text 包裹上一层 SingleChildScrollView 然后再运行,文字全部都展示出来了。...如果需要实现一个垂直的滚动列表,可以直接通过 SingleChildScrollView 包裹 Column 来实现,列表内容全部塞到 Column 即可 class SingleChildScrollDemoPage...因为 GridView 和 ListView 亮着都是可滑动的部件,直接拼接肯定会有「滑动冲突」,所以 Flutter 就提供了一个粘合剂,CustomScrollView,那么 Flutter 如何实现呢...例如我们需要实现,当滚动的距离大于一定距离的时候显示一个回到顶部的按钮,有了 ScrollController 就能够非常方便的实现 ScrollController 因为需要根据滑动的距离显示回到顶部按钮

2.4K30

Flutter状态管理新的实践

Tech 导读 本文介绍flutter端状态刷新的一种新的思路和尝试,通过dart的扩展属性,定义一个观察者模式,去更新widget的状态,以及如何在widget的生命周期寻找一个切入点,建立订阅关系。...,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目标页面展示到屏幕 2.1 使用方式 实现一个页面如下:UI 图1 UI实现 实现功能,当点击“按钮...2.2.1 控件刷新 控件名称 描述 1、Text 显示“你好”的文本控件 2、TextButton 按钮 3、Text 按钮包含的文本 4、Consumer 包裹“TextButton”,否则无法刷新...2、TosObWidget 包裹“你好”文本控件 3、Text 按钮包含的文本 3、TextButton 按钮控件 4、Consumer 包裹“TextButton”,否则无法刷新 5、Consumer...的静态成员变量proxy,类型为RxObserver(即为上一步TosObWidget共享出来的_observer) 2.判断RxObserver.proxy不为空,且没有被添加到_observers列表

1K20

你知道吗,Flutter内置了10多种Button控件

版本及Dart版本如下:Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 Flutter内置了10多种Button(按钮)类控件供我们使用,了解这些控件有助于提高我们的开发速度...material风格的返回按钮,本身是一个IconButton,点击时默认执行Navigator.maybePop即如果路由栈有上一页则返回到上一页。...风格的关闭按钮,本身是一个IconButton,点击时默认执行Navigator.maybePop即如果路由栈有上一页则返回到上一页。...用法如下: CloseButton() 效果如下: [1240] ButtonBar ButtonBar并不是一个单独的按钮控件,而是末端对齐的容器类控件,当在水平方向上没有足够空间时候,按钮整体垂直排列...MainAxisAlignment.center, mainAxisSize: MainAxisSize.max, ... ) 效果如下: ToggleButtons ToggleButtons组件多个组件组合在一起

2.3K00

Google水冷服务器,制冷革命正当时

其中高发热的元件(CPU 和南北桥芯片组等)靠近散热片内的冷冻来安装,促使热量被就近带走;而一些发热量低的器件(内存和硬盘等)则直接安装在离三明治散热片中心稍远的位置,部分案例中服务器风扇或电源风扇安装在某侧的服务器主板上...这些电源风扇不仅内存、硬盘等器件的热量带走,也兼做服务器电源散热。...虽然下图的风扇没有和盘管放在一起,专门做了个热吊顶,实际在谷歌的很多案例中风扇会直接安装在盘管顶部,减少工程的复杂度(当然盘管也可以不用直接安装在热通道的顶部,减少盘管漏水或者冷凝等对服务器的运行风险...而流到每个服务器的冷冻水流量则由流量计和温度传感器来控制(当监测到服务器温度偏高的时候,可以加大水流量或者调低冷冻供水温度)。...总之,谷歌是一个在不断奔跑的巨人。

2.4K60
领券