当前位置:首页 > 谈天说地

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

34资源网2022-06-25602

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

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这个参数来设置单元格宽度,从源码中我们可以得知,如果宽度无限大的话,需要使用fixedcolumnwidth或intrinsiccolumnwidth设置单元格大小。

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内容请搜索萬仟网以前的文章或继续浏览下面的相关文章希望大家以后多多支持萬仟网!

版权声明:34楼发布

本文链接:https://www.34l.com/post/17997.html

分享给朋友:

相关文章

冠状病毒"族谱"曝光,这些防控要点很重要

冠状病毒"族谱"曝光,这些防控要点很重要

自新冠疫情发生以来,医生、护士、社区工作者、公安民警、媒体工作者……等等各行各业人员都战斗在战疫前沿,而更多的人们为了阻断病毒的传播链,听从指挥和安排宅在家里。目前,中国疫情防控走过了最最艰难的时刻,但世界疫情却在极速升温,“外防输入,内防…

好文分享,一辈子很短,别懂得太晚!

好文分享,一辈子很短,别懂得太晚!

曾经以为,人是慢慢长大的,后来才知道,人是一瞬间成长的;曾经也以为,人是渐渐变老的,后来才知道,人是一瞬间衰老的。…

女人励志语录20句,满满的正能量句子

女人励志语录20句,满满的正能量句子

1、每一个太阳升起,老想带去期待的问候:让每日的气体全是清爽让每日的情绪全是伸展让每日的获得全是丰富!…

情浓时,海誓山盟;情淡时,形同陌路

情浓时,海誓山盟;情淡时,形同陌路

1、如果一个人影响到了你的情绪,你的焦点应该放在控制自己的情绪上,而不是影响你情绪的人身上。只有这样,才能真正自信起来。…

2021年创业的话,试试这几个点子行不行

2021年创业的话,试试这几个点子行不行

想要在平淡的生活工作中发现一些好的创业项目还真没那么容易。2019年即将过去一半,那么大家有没有发现什么2019年最新创业点子呢?哪些项目的市场前景以及利润可观呢?下面跟随快马小编一起来看看吧。说不定能够激发你的创业灵感!…