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

Flutter | 滚动组件,ListView,GridVIew等

Flutter 中,术语 ViewPort (视口) ,如无特别说明,则是指一个 Widget 实际显示区域; 例如,一个 ListView 显示区域高度是 800 像素,虽然其列表项总高度可能远远超过...当 ListView 一个无边界(滚动方向上)容器中时, shrinkWrap 必须为 true addAutomaticKeepAlives:该属性表示是否将列表项(子组件) 包裹在 AutomaticKeepAlive...复制代码 意思是 ListView 高度无法确定,所以解决办法就是给 ListView 设置边界,我们可以使用 SizedBox 指定具体高度: children: [ Text("商品列表"...但是由于 listView 高度固定,就会导致底部留白,这种情况可以使用屏幕高度 减去状态类,导航栏,头部高度。...childAspectRatio:子元素横轴长度和主轴长度比例。

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

Flutter GridView 网格控件

项目中,有时候会有诸如“日历”展示之类需求,此时单列表ListView控件已经无法满足我们需要。GridView就是为了满足这样“二维数组”排列而存在。...我们需要关注是gridDelegate参数,类型是SliverGridDelegate,它作用是控制GridView子组件如何排列(layout)。...3列网格(只需要固定列,行数可根据数据多少自动调节),主轴方向item间隙为20像素,非主轴方向item间隙为10像素,非主轴方向内容是主轴方向内容2倍容量。...GridView.builder(gridDelegate: null, itemBuilder: null), gridDelegate参数在上面已经讲过了,我们主要来看看itemBuilder如何使用...2 : 1),` 实际运用中需要根据实际情况对瀑布流item高度进行调整。

1.7K20

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

前面的小节基本上讲完了常用部件和容器部件,也可以完成很多界面,但是又一个问题,假如我们要显示一段文字,比如将 一段又臭又长文字 界面上显示 1000 次,不难完成吧 // ..省略一些无关代码...)), 如果每个 item 高度可以确定,那么推荐通过 itemExtent 来设置 item 高度/宽度,能够加快 ListView 渲染速度。...,这个数量是只单排数量 SliverGridDelegateWithMaxCrossAxisExtent 这个是设置最大宽度/高度,在这个值范围内取最大值,比如一排能给你排下 6 个,但是远不到设置最大值...GridView.builder 前面介绍方法中,生成 item 方式基本上是通过 List 进行转换 custom 提到了 IndexWidgetBuilder 生成方式,当然, ListView...结束前,我们再说下如何通过 ScrollController 来控制 Scrollable 滚动位置。

2.4K30

【Flutter 专题】130 图解 DraggableScrollableSheet 可手势滑动菜单栏

根据手势操作滑动固定菜单栏完成;和尚简单学习一下; ?...StatefulWidget 小组件,通过 FractionallySizedBox 以父 Widget 为基数,可设置宽高比例容器构建子内容; 案例尝试 1. builder ScrollableWidgetBuilder...构造器作为必选字段,用于 DraggableScrollableSheet 中显示可滑动子内容;其中返回内容需为可滑动 ScrollableWidget,例如 ListView / GridView...4. expand expand 用于是否填充满父 Widget,若 DraggableScrollableSheet 外层固定高度则不影响;若外层未对高度进行固定,expand 作用于是否填充满父...小扩展 之前分析 DraggableScrollableSheet 时其源码采用了 FractionallySizedBox 比例容器,和尚简单了解一下,其源码非常简单,通过设置 heightFactor

1.3K20

【Flutter 专题】20 图解【分享页面】底部对话框

,用来设置 GridView item 基本属性。...= 1.0, // item 宽高比,默认1:1 }) Tips:注意设置 item 个数与列间距配合,如果太大可能会造成页面展示不全等异常情况。...1.2 若此时设置内容 Widget 宽高,会发现依旧是重新打开一个页面,高度从底向上占据所设置高度,且点击空白区不会消失,如图: ?...2.2 若此时设置内容 Widget 宽高,会发现依旧是打开一个半透明页面,高度从底向上占据所设置高度,且点击空白区会消失,如图: ?...2.3 若此时设置内容 Widget 数据量很多,效果如何呢,这就是和尚选择用 GridView 原因,现有宽高内进行可滑动操作即可,如图: ?

1.1K71

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

指定 itemExtent 值比让子元素决定自身长度绘制时更高效,特别是滚动位置频繁变化状态下,因为设置 itemExtent 可以让滚动系统提前知道列表长度。...(懒加载时,如果设置了包裹那么在此列表项滑出屏幕外时不会被GC。...如果设置为 0.0,表示关闭预加载 children:列表项集合 semanticChildCount:提供语义信息孩子数量 item 数量固定 listview 示例 listview 构造方法中参数...(懒加载时,如果设置了包裹那么在此列表项滑出屏幕外时不会被GC。...如果设置为 0.0,表示关闭预加载 semanticChildCount:提供语义信息孩子数量 GridView 固定列数 import 'package:flutter/material.dart

8.6K51

《Flutter》-- 6.高级组件

:视图窗口内部长度,大小等于屏幕显示列表长度; extentAfter:列表中未滑入视图窗口部分长度; atEdge:是否滚动到了可滚动组件边界。...如果滚动方向是垂直方向,则表示子组件高度;如果滚动方向为水平方向,则表示子组件长度。...实现类简写,用于创建横轴数量固定网格视图; 4)GridView.extent():SliverGridDelegateWithFixedCrossAxisCount实现类简写,用于创建横轴子元素宽度固定网格视图...绘制阶段提供画笔,可配置画笔颜色、样式和粗细等属性。...分层渲染可以降低视图渲染带来性能开销。 无论是创建组合组件还是创建自绘组件,首先需要考虑如何将复杂布局简化,把大问题拆分成若干小问题。

10.5K20

Flutter 约束宽高比控件 AspectRatio

搭建 UI 过程中,经常会出现要求约束宽高比需求。 比如,把照片变成 16:9 或者 4:3 ,这个时候你会怎么做? 是动态设置?还是写死宽高?...尝试将子项调整为特定宽高比 widget。 widget 首先尝试布局约束所允许最大宽度。通过给定宽高比来确定小部件高度,表示为宽度与高度比率。...把宽高比设置为4:3 看一下: ? 可以看到,确实是按照我们输入比例来执行。 与GridView 联动 我们可能遇到更多需求是:GridView 中,也要控制住每一张图片宽高比。...这个时候我们就只需要设置宽高比即可设置合适宽高。 设置不符合常理宽高 前面我们设置都是符合常理宽高。 比如,我们限制了外部容器宽高都为100。...第一种情况:宽高比为 2,设置宽为100,那么高会自动算出来为50,这样是合理。 第二种情况:宽高比为0.5,也就是说高比宽更长,那这个时候我设置宽为100,会是什么样结果?

2.6K10

构建实用Flutter文件列表:从简到繁完美演进

现代科技发展迅速时代,我们电脑、手机、平板等设备里积累了大量文件,这些文件可能是我们照片、文档、音频、视频等等。然而,当文件数量增多时,我们如何快速地找到所需文件呢?...这时,一个简洁、清晰文件列表就能够帮助我们快速解决这些问题。 本文将探索内容 本文中,我们将深入探讨如何使用Flutter构建一个简单而实用文件列表。...均匀布局 目前我们文件列表是按照固定数量文件数来显示,但是不同设备上,可能会出现文件块大小不一致情况,导致布局不够美观。...通过设置overflow为TextOverflow.ellipsis,可以让文本超出一定长度后自动截断,并显示省略号。...; } 在这段代码中,我们增大了每个文件块宽度,以确保文件名能够完全显示文件块内部

17211

深入理解DIP、IoC、DI以及IoC容器 摘要

Bob Martins对DIP定义: 高层模块不应依赖于低层模块,两者应该依赖于抽象。 抽象不不应依赖于实现,实现应该依赖于抽象。...显然,这不是一个良好设计,组件之间高度耦合,可扩展性较差,它违背了DIP原则。高层模块Order类不应依赖于低层模块SqlServerDal,AccessDal,两者应该依赖于抽象。...在上述实例中,Order类所依赖对象SqlServerDal创建和绑定是Order类内部进行。事实证明,这种方法并不可取。...既然,不能在Order类内部直接绑定依赖关系,那么如何将SqlServerDal对象引用传递给Order类使用呢? ?...根据DIP原则,我们知道高层模块不应依赖于低层模块,两者应该依赖于抽象。那么构造函数参数应该是一个抽象类型。

59930

深入理解DIP、IoC、DI以及IoC容器

Bob Martins对DIP定义: 高层模块不应依赖于低层模块,两者应该依赖于抽象。 抽象不不应依赖于实现,实现应该依赖于抽象。...显然,这不是一个良好设计,组件之间高度耦合,可扩展性较差,它违背了DIP原则。高层模块Order类不应依赖于低层模块SqlServerDal,AccessDal,两者应该依赖于抽象。...在上述实例中,Order类所依赖对象SqlServerDal创建和绑定是Order类内部进行。事实证明,这种方法并不可取。...既然,不能在Order类内部直接绑定依赖关系,那么如何将SqlServerDal对象引用传递给Order类使用呢? ?...根据DIP原则,我们知道高层模块不应依赖于低层模块,两者应该依赖于抽象。那么构造函数参数应该是一个抽象类型。

1K80

Web前端学习 第2章 网页重构10 还原设计稿

二、网页重构 实际工作中,UI设计师设计网页过程中,会留存很多网页中图片源文件,我们还原设计稿时候,直接让设计师把网页相关图片给我们即可。...高度自适应问题 网页中很多位置是不应设置固定高度: 例如列表容器高度应该根据列表元素个数决定其高度,列表元素个数越多,列表高度越高。 列表容器不应设置高度。...还有文章容器整体高度,也应该根据内容增多而逐渐增高。 布局时候,这些效果都不应设置高度。...宽度自适应问题 第07节中我们了解到,块元素默认情况独立成行,严谨说,应该是: 块元素默认情况下占父级元素宽度100% 因此,在网页制作中,如果块元素(例如div,ul,li等),我们希望其宽度占容器元素...如果是body标签自己块元素,不设置宽度,其实际宽度会随着浏览器宽度变化而变化,这样就实现了元素适应浏览器宽度。 例如融职教育首页头部,就是一个适应网页宽度容器

65510

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券