当前位置: 首页 > 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.lryc.cn/news/618410.html

相关文章:

  • 【工具】通用文档转换器 推荐 Markdown 转为 Word 或者 Pdf格式 可以批量或者通过代码调用
  • Flutter 基于google验证登录实现
  • 肖臻《区块链技术与应用》第九讲:比特币交易的“智能”核心:深入解析脚本语言Script
  • Ubuntu系统安装学习笔记(Win双系统+非U盘安装)
  • AI智能体平台大爆发,2025AI智能体平台TOP30
  • ​​LangChain
  • 肖臻《区块链技术与应用》第十讲:深入解析硬分叉与软分叉
  • 云原生高级---TOMCAT
  • Json 中国全部省级、城市,数据来源于腾讯位置、城市选择器
  • 机器人焊接电源气体节气装置
  • GNSS接收机的工作原理及典型应用领域
  • Go面试题及详细答案120题(0-20)
  • vue3大事件
  • STL容器的使用时机
  • Jenkins 基本使用文档
  • SQL 生成日期与产品的所有组合:CROSS JOIN(笛卡尔积)
  • 「机器学习」:金融风控贷款违约预测,天池比赛解决详细思路
  • 超详细!VMware12 安装win7操作系统
  • Gartner 《IAM for LLM-Based AI Agents》学习心得
  • 从GPT-2到gpt-oss:架构演进分析
  • Git 常用命令速查表
  • Kafka的一条消息的写入和读取过程原理介绍
  • excel-随笔记
  • 基于Hadoop的农产品价格数据分析与可视化【Springboot】
  • 关于数据库的restful api接口工具SqlRest的使用
  • Next.js 中间件:自定义请求处理
  • 自动驾驶 HIL 测试:构建 “以假乱真” 的实时数据注入系统
  • 【Go】Gin 超时中间件的坑:fatal error: concurrent map writes
  • [java八股文][Mysql面试篇]架构
  • 虚拟机一站式部署Claude Code 可视化UI界面