当前位置: 首页 > 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.dtcms.com/a/327745.html

相关文章:

  • 17、CryptoMamba论文笔记
  • 基于大数据的在线教育评估系统 Python+Django+Vue.js
  • scikit-learn/sklearn学习|岭回归python代码解读
  • CVPR 2025丨机器人如何做看懂世界
  • 全面解析远程桌面:功能实现、性能优化与安全防护全攻略
  • 第十篇:3D模型性能优化:从入门到实践
  • AWT与Swing深度对比:架构差异、迁移实战与性能优化
  • 自己动手造个球平衡机器人
  • 基于 gRPC 的接口设计、性能优化与生产实践
  • open Euler--单master部署集群k8s
  • 【能耗监控数据聚合处理策略应用】
  • IIS 多用户环境中判断服务器是否为开发用电脑,数据状态比较
  • GeoScene 空间大数据产品使用入门(2)数据资源
  • 英伟达被约谈?国产替代迎来新机遇
  • 中国网络安全处罚综合研究报告(2020-2025)
  • 项目部署总结
  • iceberg FlinkSQL 特性
  • 什么是分布式,它有哪些功能和应用场景
  • 如何在idea中导入外来文件
  • 呼吸道病原体检测需求激增,呼吸道快检试纸条诊断试剂生产厂家推荐,默克全链解决方案助IVD企业把握百亿风口
  • Protocol Buffers(Protobuf) 详解
  • SQL注入学习笔记
  • 计算机网络1-7:第一章 概述 章节小结
  • 科普:增强细节真实感的“微弹跳”
  • 5-终端安全检测和防御技术
  • FPGA即插即用Verilog驱动系列——SPI发送模块
  • AV、IPS、WAF对比
  • 云手机网速和本机网速的关系
  • 解锁 Appium Inspector:移动端 UI 自动化定位的利器
  • 秋招笔记-8.12