• ssdfsafsd


    1. LinearLayout mContentView = (LinearLayout) findViewById(R.id.ll);
    2. //构造假数据
    3. ArrayList<ArrayList<String>> mTableDatas = new ArrayList>();
    4. ArrayList<String> mfristData = new ArrayList<String>();
    5. mfristData.add("标题");
    6. for (int i = 0; i < 10; i++) {
    7. mfristData.add("标题你是逗比嘛" + i);
    8. }
    9. mTableDatas.add(mfristData);
    10. for (int i = 0; i < 20; i++) {
    11. ArrayList<String> mRowDatas = new ArrayList<String>();
    12. mRowDatas.add("标题" + i);
    13. for (int j = 0; j < 10; j++) {
    14. mRowDatas.add("这都不会吗?到家了数据" + j);
    15. }
    16. mTableDatas.add(mRowDatas);
    17. }
    18. final LockTableView mLockTableView = new LockTableView(this, mContentView, mTableDatas);
    19. Log.e("表格加载开始", "当前线程:" + Thread.currentThread());
    20. mLockTableView.setLockFristColumn(true) //是否锁定第一列
    21. .setLockFristRow(true) //是否锁定第一行
    22. .setMaxColumnWidth(100) //列最大宽度
    23. .setMinColumnWidth(60) //列最小宽度
    24. .setColumnWidth(1,30) //设置指定列文本宽度
    25. .setColumnWidth(2,20)
    26. .setMinRowHeight(20)//行最小高度
    27. .setMaxRowHeight(60)//行最大高度
    28. .setTextViewSize(16) //单元格字体大小
    29. .setFristRowBackGroudColor(R.color.table_head)//表头背景色
    30. .setTableHeadTextColor(R.color.beijin)//表头字体颜色
    31. .setTableContentTextColor(R.color.border_color)//单元格字体颜色
    32. .setCellPadding(15)//设置单元格内边距(dp)
    33. .setNullableString("N/A") //空值替换值
    34. .setTableViewListener(new LockTableView.OnTableViewListener() {
    35. @Override
    36. public void onTableViewScrollChange(int x, int y) {
    37. // Log.e("滚动值","["+x+"]"+"["+y+"]");
    38. }
    39. })//设置横向滚动回调监听
    40. .setTableViewRangeListener(new LockTableView.OnTableViewRangeListener() {
    41. @Override
    42. public void onLeft(HorizontalScrollView horizontalScrollView) {
    43. Log.e("滚动边界","滚动到最左边");
    44. }
    45. @Override
    46. public void onRight(HorizontalScrollView view) {
    47. Log.e("滚动边界","滚动到最右边");
    48. }
    49. })//设置横向滚动边界监听
    50. .setOnLoadingListener(new LockTableView.OnLoadingListener() {
    51. @Override
    52. public void onRefresh(final XRecyclerView mXRecyclerView, final ArrayList<ArrayList<String>> mTableDatas) {
    53. Log.e("onRefresh",Thread.currentThread().toString());
    54. Handler handler = new Handler();
    55. handler.postDelayed(new Runnable() {
    56. @Override
    57. public void run() {
    58. // Log.e("现有表格数据", mTableDatas.toString());
    59. //构造假数据
    60. ArrayList<ArrayList<String>> mTableDatas = new ArrayList>();
    61. ArrayList<String> mfristData = new ArrayList<String>();
    62. mfristData.add("标题");
    63. for (int i = 0; i < 10; i++) {
    64. mfristData.add("标题" + i);
    65. }
    66. mTableDatas.add(mfristData);
    67. for (int i = 0; i < 20; i++) {
    68. ArrayList<String> mRowDatas = new ArrayList<String>();
    69. mRowDatas.add("标题" + i);
    70. for (int j = 0; j < 10; j++) {
    71. mRowDatas.add("数据" + j);
    72. }
    73. mTableDatas.add(mRowDatas);
    74. }
    75. mLockTableView.setTableDatas(mTableDatas);
    76. mXRecyclerView.refreshComplete();
    77. }
    78. }, 1000);
    79. }
    80. @Override
    81. public void onLoadMore(final XRecyclerView mXRecyclerView, final ArrayList<ArrayList<String>> mTableDatas) {
    82. Log.e("onLoadMore",Thread.currentThread().toString());
    83. Handler handler = new Handler();
    84. handler.postDelayed(new Runnable() {
    85. @Override
    86. public void run() {
    87. if (mTableDatas.size() <= 60) {
    88. for (int i = 0; i < 10; i++) {
    89. ArrayList<String> mRowDatas = new ArrayList<String>();
    90. mRowDatas.add("标题" + (mTableDatas.size() - 1));
    91. for (int j = 0; j < 10; j++) {
    92. mRowDatas.add("数据" + j);
    93. }
    94. mTableDatas.add(mRowDatas);
    95. }
    96. mLockTableView.setTableDatas(mTableDatas);
    97. } else {
    98. mXRecyclerView.setNoMore(true);
    99. }
    100. mXRecyclerView.loadMoreComplete();
    101. }
    102. }, 1000);
    103. }
    104. })
    105. .setOnItemClickListenter(new LockTableView.OnItemClickListenter() {
    106. @Override
    107. public void onItemClick(View item, int position) {
    108. Log.e("点击事件",position+"");
    109. }
    110. })
    111. .setOnItemLongClickListenter(new LockTableView.OnItemLongClickListenter() {
    112. @Override
    113. public void onItemLongClick(View view, int i) {
    114. Log.e("长按事件",i+"");
    115. }
    116. })
    117. .setOnItemSeletor(R.color.dashline_color)//设置Item被选中颜色
    118. .show(); //显示表格,此方法必须调用
    119. mLockTableView.getTableScrollView().setPullRefreshEnabled(true);
    120. mLockTableView.getTableScrollView().setLoadingMoreEnabled(true);
    121. mLockTableView.getTableScrollView().setRefreshProgressStyle(ProgressStyle.SquareSpin);
    122. //属性值获取
    123. Log.e("每列最大宽度(dp)", mLockTableView.getColumnMaxWidths().toString());
    124. Log.e("每行最大高度(dp)", mLockTableView.getRowMaxHeights().toString());
    125. Log.e("表格所有的滚动视图", mLockTableView.getScrollViews().toString());
    126. Log.e("表格头部固定视图(锁列)", mLockTableView.getLockHeadView().toString());
    127. Log.e("表格头部固定视图(不锁列)", mLockTableView.getUnLockHeadView().toString());

  • 相关阅读:
    使用单调栈解决接雨水问题——LeetCode 42 接雨水+单调栈说明
    php+vue3实现点选验证码
    ubuntu修改apt源为阿里源
    Linux下安装MySQL问题及报错解决
    Python桌面应用之XX学院水卡报表查询系统(Tkinter+cx_Oracle)
    基于互联网的招聘信息统计与分析(作业)
    Nginx配置SSL证书
    Python快速入门教程
    C++ Primer 第十一章 关联容器 重点解读
    服务网格安全防护
  • 原文地址:https://blog.csdn.net/a316375/article/details/134519769