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

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

34资源网2022-06-25541

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

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

看完文章,还可以扫描下面的二维码下载快手极速版领4元红包

快手极速版二维码

快手极速版新人见面礼

除了扫码领红包之外,大家还可以在快手极速版做签到,看视频,做任务,参与抽奖,邀请好友赚钱)。

邀请两个好友奖最高196元,如下图所示:

快手极速版邀请好友奖励

扫描二维码推送至手机访问。

版权声明:本文由34楼发布,如需转载请注明出处。

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

分享给朋友:

相关文章

你所想的和结果往往并不一样

你所想的和结果往往并不一样

前年我哥买了一套房子,到前年年底时候装修好,说把我接过去一起住,他说人多住着也开心,本来想着把工作室桌椅凳子都搬到他家和我一起干网络赚钱的,结果他老婆的养爸住进去之后闹出一系列矛盾,后来没有办法,我得搬出来住,不然我哥天天要为我的事情和她老…

养成良好的习惯,做一名有品位的教师

养成良好的习惯,做一名有品位的教师

陶行知先生说:“思想决定行动,行动养成习惯,习惯形成品质,品质决定命运”。最近从网上读了《影响教师一生的100个好习惯》一书,不禁对陶先生这句话有了更深刻的领悟和理解。阅读本书带给我的不仅是享受,更多的则是生活的引领,智慧的传递和方法的教授…

疫情还是很严峻,最近去超市都要检测了

疫情还是很严峻,最近去超市都要检测了

疫情还是很严峻,最近去超市也要各种检测了,记得前不久我去超市还是比较宽松的,基本上没有专门的检测员,口罩也不用戴。最近可能是外省一些地区疫情比较严重了,所以温州这边现在检测也更加严格了,我最近去超市买东西都要各种检测,买个菜呀,买些零食吃的…

lenovo手机网上哪里买(联想旗舰店官网商城)

lenovo手机网上哪里买(联想旗舰店官网商城)

昨晚联想拯救者电竞手机 2 Pro 正式发布,搭载骁龙 888 旗舰芯片、八指操控体系,配备 6.92 英寸 AMOLED 144Hz 三星定制电竞无孔屏幕,5500mAh 容量电池,堪称 “堆料狂魔”,这款手机于今日 10:00 正式开售…

一场关于元宇宙公司之死的剧本杀

一场关于元宇宙公司之死的剧本杀

编者按:本文来自脑极体,创业邦经授权发布。 2021年,被称作元宇宙元年。这种结合了区块链、虚拟现实、增强现实多种技术的概念,据称能够提供社交、娱乐、电商多种功能。美国彭博社称,元宇宙的市场规模将在2024年将达到8000亿美元。而就在20…