第七回:如何使用GirdView Widget

文章介绍了Flutter中的GridViewWidget,用于创建网格布局,具备滚动功能。通过示例代码展示了如何设置列数、行间距并填充内容,强调了GridView不能与Row或Column嵌套使用,并提供了简单的运行效果展示。


我们在上一章回中介绍了Image Widget,本章回中将介绍 GirdView这种Widget,闲话休提,让我们一起Talk Flutter吧。

概念介绍

在Flutter中使用GirdView表示网格状的布局,类似日常办公中使用的Excel,它和ListView一样具有滚动功能,当被显示的内容大于屏幕高度时就让内容在屏幕中滚动显示。

使用方法

  1. 创建GirdVeiw对象,并且设置相关属性;这里的属性包含列的数量,行的间距等内容;
  2. 添加布局中显示的内容,这些内容会依据列的数量自动排列;

以上是大体的思路和步骤,还有一些细节上的知识需要介绍:

  • 创建对象使用GirdView类的count()或者excount()方法;
  • 设置列的数量使用crossAxisCount命名参数;
  • 设置行的间隔使用crossAxisSpacing命名参数控制;
  • 添加布局中的内容时使用children命名参数。

示例代码

  Widget girdViewEx = GridView.count(
    crossAxisCount: 4,
    crossAxisSpacing: 0.5,
    children: [
      Icon(Icons.light),
      Icon(Icons.arrow_back),
      Icon(Icons.light),
      Icon(Icons.hail),
      Icon(Icons.nat),
      Icon(Icons.hail),
      Icon(Icons.mail),
      Icon(Icons.hail),
    ],
  );

在上面的代码中我们创建了一个4列的网格,在每个网格里显示不同的Icon。这些Icon使用SDK自带的图标。我们上面的widget添加到MaterialApp中就可以运行了,代码如下:

//build方法省略不写
    return MaterialApp(
        title: 'Flutter Demo',
        theme: ThemeData(primaryColor: Colors.blue),
        home: Scaffold(
            appBar: AppBar(
              title: const Text("Title of Hello App"),
            ),
            // body: Column(
            //   children: [
            //     wechatBottom,
            //     imageEx,
            //   ],
            // )
          // body: listEx,
          body: girdViewEx,
        )
    );

注意:它和ListView一样,需要放到body中单独使用,而不是放到Column中使用,也就是说它们不能和Row或者Column嵌套使用。编译上面的程序可以得到以下运行效果:
在这里插入图片描述

经验总结

  • GirdView是一种容器类Widget和ListView的使用方法类似,而且它自带滚动功能,当容器中行的数量大于屏幕可以显示的数量时,我们可以滑动显示其它行中的内容。
  • GirdView可以自动调整每行中的内容,我们只需要指定列的数量就可以。

看官们,关于GirdView Widget的内容就介绍到这里,欢迎大家在评论区交流与讨论!

控件使用 1、鼠标经过行的时候改变该行的样式,鼠标离开行的时候恢复该行的样式 使用方法(设置属性): MouseOverCssClass - 鼠标经过行时行的 CSS 类名 2、对多个字段进行复合排序;升序、降序的排序状态提示 使用方法(设置SmartSorting复合属性): AllowSortTip - 是否启用排序提示 AllowMultiSorting - 是否启用复合排序 SortAscImageUrl - 升序提示图片的URL(不设置则使用默认图片) SortDescImageUrl - 降序提示图片的URL(不设置则使用默认图片) SortAscText - 升序提示文本 SortDescText - 降序提示文本 3、根据按钮的CommandName设置其客户端属性 使用方法(设置ClientButtons集合属性): BoundCommandName - 需要绑定的CommandName AttributeKey - 属性的名称 AttributeValue - 属性的值(两个占位符:{0} - CommandArgument;{1} - Text) Position - 属性的值的位置 4、联动复选框(复选框的全选和取消全选)。选中指定的父复选框,则设置指定的所有子复选框为选中状态;取消选中指定的父复选框,则设置指定的所有子复选框为取消选中状态。如果指定的所有子复选框为均选中状态,则设置指定的父复选框为选中状态;如果指定的所有子复选框至少有一个为取消选中状态,则设置指定的父复选框为取消选中状态 使用方法(设置CascadeCheckboxes集合属性): ParentCheckboxID - 模板列中 父复选框ID ChildCheckboxID - 模板列中 子复选框ID CashBox.Helper.WebGrid中的静态方法 List GetCheckedDataKey(GridView gv, int columnIndex) List GetCheckedDataKey(GridView gv, string checkboxId) 5、固定指定行、指定列,根据RowType固定行,根据RowState固定行 使用方法(设置FixRowColumn复合属性): FixRowType - 需要固定的行的RowType(用逗号“,”分隔) FixRowState - 需要固定的行的RowState(用逗号“,”分隔) FixRows - 需要固定的行的索引(用逗号“,”分隔) FixColumns - 需要固定的列的索引(用逗号“,”分隔) TableWidth - 表格的宽度 TableHeight - 表格的高度 6、响应行的单击事件和双击事件,并在服务端处理 使用方法(设置属性): BoundRowClickCommandName - 行的单击事件需要绑定的CommandName BoundRowDoubleClickCommandName - 行的双击事件需要绑定的CommandName 7、行的指定复选框选中的时候改变该行的样式,行的指定复选框取消选中的时候恢复该行的样式 使用方法(设置CheckedRowCssClass复合属性): CheckBoxID - 模板列中 数据行的复选框ID CssClass - 选中的行的 CSS 类名 8、导出数据源的数据为Excel、Word或Text(应保证数据源的类型为DataTable或DataSet) 使用方法: 为WebGrid添加的方法 Export(string fileName) Export(string fileName, ExportFormat exportFormat) Export(string fileName, ExportFormat exportFormat, Encoding encoding) Export(string fileName, int[] columnIndexList, ExportFormat exportFormat, Encoding encoding) Export(string fileName, int[] columnIndexList, string[] headers, ExportFormat exportFormat, Encoding encoding) Export(string fileName, string[] columnNameList, ExportFormat exportFormat, Encoding encoding) Export(string fileName, strin
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值