当前位置: 首页 > news >正文

Flutter GridView的基本使用

可以将图标、文本等信息按多行多列方式布局的组件。

属性说明
gridDelegate控制GridView中子元素排列(SliverGridDelegateWithFixedCrossAxisCount)

SliverGridDelegateWithFixedCrossAxisCount

属性说明
crossAxisCount交叉轴的子元素数量
mainAxisSpacing主轴方向子元素间距
crossAxisSpacing交叉轴方向子元素间距
childAspectRatio宽度与高度的比值
SliverGridDelegateWithMaxCrossAxisExtent
属性说明
maxCrossAxisExtent交叉轴最大数量子元素

1.GridView()
会一次性全部渲染children中的所有子元素组件,适用于有限个数子元素的场景。

请添加图片描述

class MyState extends State {Widget build(BuildContext context) {List<Widget> teList = [];for (int i = 0; i < 12; i++) {TextButton e = TextButton(onPressed: () {},child: Column(children: [Icon(Icons.account_box_rounded), Text("个人")]),);teList.add(e);}GridView gridView = GridView(gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 4,childAspectRatio:1.8),children: teList,);return Scaffold(appBar: AppBar(title: Text(""), centerTitle: true),body: gridView,);}
}
  1. GridView.count()
    用于设置交叉轴方向子元素的个数。
class MyState extends State {Widget build(BuildContext context) {List<Widget> teList = [];for (int i = 0; i < 12; i++) {TextButton e = TextButton(onPressed: () {},child: Column(children: [Icon(Icons.account_box_rounded), Text("个人")]),);teList.add(e);}GridView gridView = GridView.count(crossAxisCount: 3,mainAxisSpacing: 3,crossAxisSpacing: 3,children: teList,);return Scaffold(appBar: AppBar(title: Text(""), centerTitle: true),body: gridView,);}
}
  1. GridView.extent()
    用于设置子元素在交叉轴方向的最大可能长度。
    GridView gridView2 = GridView.extent(maxCrossAxisExtent: 99,children: teList,);
  1. GridView.builder
    动态创建子元素,用于子元素比较多或者数量不确定的情况。
    itemCount设置最大数量,如果不设置itemCount,会一直创建item。
    请添加图片描述
class MyState extends State {List<int> intList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];List<Widget> wList = [];Widget build(BuildContext context) {for (int i = 0; i < intList.length; i++) {int k = intList[i];Text text = Text(k.toString());wList.add(text);}GridView gridView = GridView.builder(gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 4,),itemBuilder: (context, index) {return wList[index];},itemCount: 10,);return Scaffold(appBar: AppBar(title: Text("222222222")),body: gridView,);}
}
http://www.xdnf.cn/news/1287235.html

相关文章:

  • Java 工厂方法模式
  • 【项目设计】高并发内存池
  • 北京-4年功能测试2年空窗-报培训班学测开-第七十四天-线下面试-聊的很满意但可能有风险-等信吧
  • cuda排序算法--双调排序(Bitonic_Sort)
  • web前端第二次作业
  • 开发避坑指南(23):Tomcat高版本URL特殊字符限制问题解决方案(RFC 7230 RFC 3986)
  • TF-IDF:信息检索与文本挖掘的统计权重基石
  • 多奥电梯智能化解决方案的深度解读与结构化总结,内容涵盖系统架构、功能模块、应用场景与社会价值四大维度,力求全面展示该方案的技术先进性与应用前景。
  • Agent智能体基础
  • vue3大事件
  • Linux随记(二十二)
  • 本地(macOS)和服务器时间不同步导致的 Bug排查及解决
  • 从裸机到云原生:Linux 操作系统实战进阶的“四维跃迁”
  • 【Linux】程序地址空间
  • CTO如何通过录音转写和音频降噪,提升企业远程协作效率?
  • 定制客车系统线上购票系统功能设计
  • springboot+JPA
  • 机械臂的智能升维:当传统机械臂遇见Deepoc具身智能大模型从自动化工具到具身智能体的范式革命
  • 【KO】android 音视频
  • Elasticsearch JavaScript 客户端「基础配置」全指南(Node/TS)
  • AWT与Swing深度对比:架构差异、迁移实战与性能优化
  • Git 常用命令速查表
  • java面试题储备4: 谈谈对es的理解
  • 【Go】Gin 超时中间件的坑:fatal error: concurrent map writes
  • iOS 编译 cpp 代码生成 .a 库备忘
  • 医美产业科技成果展陈中心:连接微观肌肤世界与前沿科技的桥梁
  • 微算法科技(NASDAQ:MLGO)开发经典增强量子优化算法(CBQOA):开创组合优化新时代
  • 非凸科技受邀参加Community Over Code Asia 2025 Rust分论坛
  • 云计算分类与主流产品
  • 【论文阅读】一种基于经典机器学习的肌电下肢意图检测方法,用于人机交互系统