Android Flutter表格组件Table的使用详解

 更新时间:2022年06月24日 09:34:53   作者:老李code  
Table组件不同于其它Flex布局,它是直接继承的RenderObjectWidget的。本篇文章主要介绍如何在页面中使用表格做一个记录,感兴趣的可以尝试一下

之前开发中用到的表格,本篇文章主要介绍如何在页面中使用表格做一个记录。

Table组件不同于其它Flex布局,它是直接继承的RenderObjectWidget的。相当于是一个独立的组件,区别与其他系列组件。

Table、TabRow、TabCell

惯例,先看下Table相关的构造方法:

Table({
  Key? key,
  this.children = const <TableRow>[],//行列表 表示多少行
  this.columnWidths,// 表格每列分布宽度
  // 默认平分占比 修改每一列占比使用上面的参数
  this.defaultColumnWidth = const FlexColumnWidth(),
  this.textDirection,//阅读顺序
  this.border,// 边框样式
  this.defaultVerticalAlignment = TableCellVerticalAlignment.top,// 单元格垂直对齐方式
  this.textBaseline, //对齐文本的水平线
})

// 表格内容区
const TableRow({
this.key, 
this.decoration,// 行单元装饰
this.children // 每一行内容列表 表示一行多少内容
});

// 单元格垂直对齐方式
const TableCell({
  Key? key,
  this.verticalAlignment,// 具体单元格垂直对齐方式、上面修改全局,这里可以覆盖全局单独设置
  required Widget child,
}

构造参数很少,用起来也比较简单,比如我们要展示三行三列数据,这里以最为常见的成绩表为例,设置了单元格样式,表格的边框色,单元格文本。

如果不设置每列的占比,表格默认将会平分空间。

设置每列占比宽度值,

columnWidths: {
  0:FixedColumnWidth(100),
  1:FixedColumnWidth(200),
  2:FixedColumnWidth(200),
},

这是一个map对象,我们可以固定设置每列的宽度值,如果不设置它将自动填充剩余空间。

这是我们表格数据比较少的时候,当列数比较多的时候,我们希望可以横向滑动来查看,毕竟在移动端屏幕有限,这里我们就必须要用defaultColumnWidth这个参数来设置单元格宽度,从源码中我们可以得知,如果宽度无限大的话,需要使用FixedColumnWidthIntrinsicColumnWidth设置单元格大小。

FixedColumnWidth:固定宽度。

IntrinsicColumnWidth:动态设置单元格大小,当我们的单元格大小不能确定时使用,但是使用这个计算方式对于内存消耗是非常大的,在源码注释中看到,具体为啥消耗大,暂时留个坑。

如果我们是用了动态计算单元格,那么表格就会变成下方这样,根据内容填充计算单元格大小自适应, 宽度就会根据文本大小动态计算单元格。

需要表格滑动记得别忘了加SingleChildScrollView组件,如果需要横纵双向滑动,可以这么嵌套加:

SingleChildScrollView(
    scrollDirection: Axis.vertical,
    child: SingleChildScrollView(
        scrollDirection: Axis.horizontal,
        child:  Table(
          textBaseline: TextBaseline.alphabetic,
          defaultVerticalAlignment: TableCellVerticalAlignment.middle,
          defaultColumnWidth: IntrinsicColumnWidth(),
          children: _getTabRows(),
          border: TableBorder.all(color: Colors.red, width: 1),
        ),)),

TabRow、TabCell使用方式非常简单就不过多介绍了,

需要注意的是TabCell组件一定是Tabel下的子组件才能使用,一般配合defaultVerticalAlignment全局设置垂直对齐方式,将TabCell嵌套在单元格组件上设置具体单元格垂直对齐方式。

小结

表格用法很简单,主要是单元格大小、对齐方式需要注意下,当然这个表格的行列数量必须是一一对应的,不能像Excel那样合并、分拆单元格。如果表格太复杂那就只能祭出大杀器自定义绘制了~~

到此这篇关于Android Flutter表格组件Table的使用详解的文章就介绍到这了,更多相关Flutter表格组件Table内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android开发实现ImageView宽度顶边显示,高度保持比例的方法

    Android开发实现ImageView宽度顶边显示,高度保持比例的方法

    这篇文章主要介绍了Android开发实现ImageView宽度顶边显示,高度保持比例的方法,结合实例形式分析了Android ImageView界面布局及元素属性动态操作两种功能实现技巧,需要的朋友可以参考下
    2018-02-02
  • Android 读取sdcard上的图片实例(必看)

    Android 读取sdcard上的图片实例(必看)

    下面小编就为大家带来一篇Android 读取sdcard上的图片实例(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Android编程实现webview将网页打包成apk的方法

    Android编程实现webview将网页打包成apk的方法

    这篇文章主要介绍了Android编程实现webview将网页打包成apk的方法,以打包HTML5为例分析了webview打包apk的相关方法、属性与事件操作技巧,需要的朋友可以参考下
    2017-08-08
  • 轻松实现可扩展自定义的Android滚轮时间选择控件

    轻松实现可扩展自定义的Android滚轮时间选择控件

    这篇文章主要为大家详细介绍了可扩展自定义的Android滚轮时间选择控件,结合WheelView实现滚轮选择日期操作,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Android Bitmap详解及Bitmap的内存优化

    Android Bitmap详解及Bitmap的内存优化

    这篇文章主要介绍了Android Bitmap详解及Bitmap的内存优化的相关资料,Bitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件,需要的朋友可以参考下
    2017-03-03
  • Android自定义录制视频功能

    Android自定义录制视频功能

    这篇文章主要为大家详细介绍了Android自定义录制视频功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Android如何实现一个DocumentProvider示例详解

    Android如何实现一个DocumentProvider示例详解

    这篇文章主要为大家介绍了Android如何实现一个DocumentProvider示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Android实用小技巧之利用Lifecycle写出更好维护的代码

    Android实用小技巧之利用Lifecycle写出更好维护的代码

    lifecycle是一个类,用于存储有关组件(如Activity或Fragment)的生命周期状态的信息,并允许其他对象观察此状态,下面这篇文章主要给大家介绍了关于Android实用小技巧之利用Lifecycle写出更好维护的代码的相关资料,需要的朋友可以参考下
    2022-05-05
  • 务必掌握的Android十六进制状态管理最佳实践

    务必掌握的Android十六进制状态管理最佳实践

    这篇文章主要为大家介绍了务必掌握的Android十六进制状态管理最佳实践,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • 详解Flutter如何获取Text截断后的字符串

    详解Flutter如何获取Text截断后的字符串

    当Text文本设置maxLins属性将文本强制截断之后,Text的承载字符串是截断前,还是截断后的呢,我们又该如何获取截断后的字符串呢,下面就来和大家详细讲讲
    2023-06-06

最新评论