网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Android中怎么通过自定义LayoutManager实现花式表格-创新互联

本篇文章为大家展示了Android中怎么通过自定义LayoutManager实现花式表格,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

龙陵ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

TableView具有如下特点:

支持不规则表格同时支持横向和纵向滚动支持顶部和左侧悬浮基于RecyclerView,所以RecyclerView自定义子视图、高效回收、子视图多样性这些特点它都有没有多层RecyclerView嵌套,性能更棒

Github地址

使用

第一步 | 添加xml文件

第二步 | 获取TableView

在展示代码之前,了解一下TableView中的主要函数:

这个setTitle(boolean isLeftOpen, boolean isTopOpen)有什么作用呢?为了确保表格的每一个单元格的长度和宽度都一样(子视图可以在横纵方向上占有多个单元格),宽和高都使用两种方式:

设置具体的值,那么单元格的宽或者高的值就是具体的设置一行或者一列可以容纳的单元格数量

所以宽高各有两种,模式的数量 = 2 * 2,总共有:

代码:

// if use butterknife// or use findViewById@BindView(R.id.tb) TableView mTable;// 默认为 TableLayoutManager.MODE_A, 4, 8mTable.setModeAndValue(TableLayoutManager.MODE_A, 6, 8);

第三步 | 创建数据类

实现ICellItem接口:

public class TableCell implements ICellItem { private String name; private String value; private int type; private int row; private int col; private int widthSpan; private int heightSpan; //... 省略构造函数和Get Set方法 @Override public int getRow() { return row; } @Override public int getCol() { return col; } @Override public int getWidthSpan() { return widthSpan; } @Override public int getHeightSpan() { return heightSpan; }}

第四步 | 设置适配器

private TableAdapter mAdapter;protected void initWidget(View root) { // 假设在这个方法中初始化 mTable.setAdapter(mAdapter = new TableAdapter(new ArrayList<>()) { @Override public int getItemLayout(TableCell tableCell, int pos) {  // ... 返回子视图布局文件  // 支持多类型  return R.layout.table_cell_content_item; } @Override public BaseAdapter.ViewHolder onCreateViewHolder(View root, int itemType) {  // itemType是子视图布局文件  // 根据布局返回具体的ViewHolder  return new ContentHolder(root); } });}// 具体的ViewHolderclass ContentHolder extends BaseAdapter.ViewHolder{ TextView mContent; public ContentHolder(View itemView) {  super(itemView);  mContent = itemView.findViewById(R.id.tv_name); } @Override protected void onBind(TableCell tableCell) {  mContent.setText(tableCell.getValue()); } }

第五步 | 重新测绘

如果TableView使用的模式是Mode_AMode_CMode_D,需要再重新测量:

mTable.post(() -> mTable.reMeasure());

上述内容就是Android中怎么通过自定义LayoutManager实现花式表格,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


分享文章:Android中怎么通过自定义LayoutManager实现花式表格-创新互联
网址分享:http://bjjierui.cn/article/ccjhse.html

其他资讯