Android非常牛叉的表格编辑库SmartTable,让复杂表格变得SoEasy

更新时间:2023-08-11 23:22:43 阅读: 评论:0

Android⾮常⽜叉的表格编辑库SmartTable,让复杂表格变得SoEasy
最近项⽬需求需要制作⼀个表格展⽰效果,先看下UI图吧:
刚开始接收到这个需求的时候,第⼀反应就是使⽤ RecyclerView 来进⾏实现,谁让 RecyclerView 那么⽜逼呢?不⽤纠结 RecyclerView 完完全全可以实现这种效果,⽆外乎可能就是稍微复杂些
RecyclerView 实现思路:
- 最外层采⽤ HorizontalScrollView,保证表格可以左右进⾏滑动
- 内层使⽤ RecyclerView,⽽使⽤ RecyclerView 时需要使⽤到 getItemViewType 这个⽅法来规定条⽬的类型(第⼀⾏title以及合计可以认为是同⼀种类型,⽽“沈阳”那⼀个稍微⼤⼀点的条⽬可以认为是第⼆种类型
- 类型⼀:这个类型布局就⾮常简单了,采⽤ LInearLayout 就可以⾮常简单的实现
- 类型⼆:可以采⽤⽔平的 LinearLayout 包裹 TextView 以及 RecyclerView 来进⾏实现
oad什么意思
上⾯仅仅是介绍了我最开始采⽤的⽅案,当然缺点⾮常多:
1. 使⽤上⾯⽅案时,需要考虑列的宽度问题,要么宽度直接在布局中写死(每列中⽂字长度不⼀样,可能会出现第⼀⾏与第⼆⾏的列错位情况),要
么根据服务器返回的数据动态获取每列中最长字符串所需要占⽤的宽度进⾏动态设置
2. 表格⼀般都会存在排序功能(当然我这个项⽬中暂时还未出现),如果出现需要对列进⾏升序或降序排序,那就呵呵了,⾃⼰想办法去吧,想想都
痛苦
说了这么多并不是贬低 RecyclerView 的意思,因为 RecyclerView 本⾝的定义就不是专门⽤来做这种复杂表格的(有说错的地⽅,欢迎在评论中留⾔),你让 RecyclerView 去实现这种效果就有点…….
下⾯来介绍⼀下今天的主⾓:SmartTable —— 好⽤漂亮的 Android 表格框架
先说⼀下 SmartTable 都⽀持的功能吧,具体例⼦后⾯再给出:
1. 快速配置⾃动⽣成表格;
2. ⾃动计算表格宽⾼
3. 表格列标题组合
interest是什么意思
4. 表格固定左序列、顶部序列、第⼀⾏、列标题、统计⾏
5. ⾃动统计,排序(⾃定义统计规则)
6. 表格图⽂、序列号、列标题格式化
7. 表格各组成背景、⽂字、⽹格、padding 等配置
8. 表格批注
9. 表格内容、列标题点击事件kuwen
10. 缩放模式和滚动模式
11. 注解模式
12. 内容多⾏显⽰
13. 分页模式
14. ⾸尾动态添加数据
15. 丰富的格式化
16. ⽀持⼆维数组展⽰(⽤于类似⽇程表,电影选票等)
17. 导⼊ excel(⽀持颜⾊,字体,背景,批注,对齐,图⽚等基本 Excel 属性)
18. 表格合并单元(⽀持注解合并,⽀持⾃动合并)
19. ⽀持其他刷新框架 SmartRefreshLayout
20. 可配置表格最⼩宽度(⼩于该宽度⾃动适配)
21. ⽀持直接 List 或数组字段转列
22. ⽀持 Json 数据直接转换成表格
23. ⽀持表格⽹格指定⾏列显⽰救世主英文
看介绍是不是感觉叼的不要不要的,不过呢,我也是刚使⽤这个框架,在这⾥也仅仅是介绍⼀些开发中常⽤的,其他的⾃⼰去尝试吧如何使⽤
引⽤:添加 JitPack repository 到你的 build ⽂件translational
allprojects {
repositories {
...
maven { url 'www.jitpack.io' }
}
}
增加依赖
dependencies {
compile 'com.github.huangyanbin:SmartTable:2.0'
}
使⽤⽅式
SmartTable 的使⽤⽅式有两种:
1. 采⽤注解的形式
2. 基本模式,⼿动配置⾏与列
⼀、注解⽅式
步骤⼀:在布局⽂件中使⽤ SmartTable
<com.bin.SmartTable
android:id="@+id/table"
android:layout_width="match_parent"
android:layout_height="match_parent" />
留学日本中介
步骤⼆:定义表格(⾃定义bean对象)
@SmartTable(name = "销售计划表")
public class UrInfo {
public UrInfo(String city, int name, int count, int restaurant, int ka, int wholesale, int industry, int other) {
this.city = city;
this.name = name;
this.ka = ka;
this.wholesale = wholesale;
this.industry = industry;
}
//    name:版块名称,count:⽬标值,restaurant:餐饮数量,ka:KA数量,wholesale:流通批发数量,industry:⼯业加⼯数量,other:其它数量@SmartColumn(id = 0, name = "部门/渠道", autoMerge = true)
摩天轮的传说private String city;
@SmartColumn(id = 1, name = "板块")
private int name;
@SmartColumn(id = 2, name = "⽬标值")
英国征收数字税
private int count;
@SmartColumn(id = 3, name = "餐饮")
private int restaurant;
@SmartColumn(id = 4, name = "KA")
private int ka;
@SmartColumn(id = 5, name = "流通批发")
private int wholesale;
@SmartColumn(id = 6, name = "⼯业加⼯")
private int industry;
@SmartColumn(id = 7, name = "其他")
private int other;
}
步骤三:绑定数据(完成)
public class MainActivity extends AppCompatActivity {
private SmartTable table;
@Override
protected void onCreate(Bundle savedInstanceState) {
tContentView(R.layout.activity_main);
List<UrInfo> list = new ArrayList<>();
table = findViewById(R.id.table);
list.add(new UrInfo("沈阳",100, 150, 50, 240, 1100, 450, 23458));
list.add(new UrInfo("沈阳",100, 150, 50, 240, 1100, 450, 23458));
list.add(new UrInfo("沈阳",100, 150, 50, 240, 1100, 450, 23458));影视音乐
list.add(new UrInfo("沈阳",100, 150, 50, 240, 1100, 450, 23458));
list.add(new UrInfo("乌鲁⽊齐",100, 150, 50, 240, 1100, 450, 23458));
list.add(new UrInfo("乌鲁⽊齐",100, 150, 50, 240, 1100, 450, 23458));
list.add(new UrInfo("乌鲁⽊齐",100, 150, 50, 240, 1100, 450, 23458));
list.add(new UrInfo("乌鲁⽊齐",100, 150, 50, 240, 1100, 450, 23458));
list.add(new UrInfo("沈阳",100, 150, 50, 240, 1100, 450, 23458));
list.add(new UrInfo("沈阳",100, 150, 50, 240, 1100, 450, 23458));
list.add(new UrInfo("沈阳",100, 150, 50, 240, 1100, 450, 23458));
list.add(new UrInfo("沈阳",100, 150, 50, 240, 1100, 450, 23458));
table.tData(list);
orbitz
}
}
是不是分分钟实现,效果图如下: ⼆、基本⽅式,⼿动创建⾏与列步骤⼀:在布局⽂件中使⽤ SmartTable 步骤⼆:定义表格(⾃定义bean对象),与采⽤注解⽅式唯⼀的不同就是不在使⽤ @SmartColumn 与 @SmartColumn 进⾏标注<com .bin.SmartTable        android:id="@+id/table"
android:layout_width="match_parent"        android:layout_height="match_parent" />

本文发布于:2023-08-11 23:22:43,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1129575.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:表格   定义   宽度   需要   效果
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图