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

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

34资源网2022-06-25521

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

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

分享给朋友:

相关文章

上海11月9日又新增一名新冠病毒感染者

上海11月9日又新增一名新冠病毒感染者

上海也不太平啊,据说昨天又新增了一例,这位新冠肺炎感染者是一名51岁的男性,具体请往下看吧。…

好想你花开富贵大礼包多少钱一提?1236g优惠价只需要43.90元

好想你花开富贵大礼包多少钱一提?1236g优惠价只需要43.90元

好想你花开富贵大礼包多少钱一提?好想你,花开富贵礼盒1236g零食大礼包,原价58.90元,领取15元的优惠券减掉之后只需要43.90元,这个价格在近30日内属于最低价,喜欢这款商品的朋友不要错过哦。…

天上的孩子电影好看吗?看豆瓣网友如何评价的吧

天上的孩子电影好看吗?看豆瓣网友如何评价的吧

由胡玫监制许磊导演编剧的电影《天上的孩子》。电影主要讲述了来自贵州的夫妻老何、玲霞5岁的独子查出绝症,不久于人世。为了让儿子的名字刻在纪念碑上,夫妻俩决定捐献儿子的器官却困难重重。…

ajax请求步骤详细代码(前端ajax请求的五个步骤)

ajax请求步骤详细代码(前端ajax请求的五个步骤)

由于在工作中需要使用AJAX请求其他域名下的请求,但是会出现拒绝访问的情况,这是因为基于安全的考虑,AJAX只能访问本地的资源,而不能跨域访问。 比如说你的网站域名是aaa.com,想要通过AJAX请求bbb.com域名中的内容,浏览器就…

手机赚钱app排行榜(最好最靠谱的赚钱软件)

手机赚钱app排行榜(最好最靠谱的赚钱软件)

在现实中有好多人,都是大钱不会赚,小钱看不上,总觉的那三毛两毛的不是钱。对于有钱人来说真的不算是钱,可对于大多数老百姓来说,积少成多,关键时刻还能解决 燃眉之急。 蜘蛛盟是一家老牌投票平台,一元提现,极速到账,值得信赖。多劳多得,投票,点赞…

如何制作二维码信息(制作二维码的微信小程序)

如何制作二维码信息(制作二维码的微信小程序)

随着地摊经济的兴起,很多朋友利用业余时间开始摆摊赚外快,但因为是移动支付的时代,需要摊主频繁地出示收款二维码,特别的不方便,而国内支付领域90%的市场被微信和支付宝垄断了,本期文章以支付宝为例,说说制作支付宝的收款二维码的几种方法。 一、…