当前位置: 首页 > 工具软件 > SmartTable > 使用案例 >

Android SmartTable隐藏x,y序列之后,列标题的颜色没了

简嘉赐
2023-12-01

遇坑步骤:

  • 隐藏x,y序列:
smartTable.getConfig().setShowXSequence(false);
smartTable.getConfig().setShowYSequence(false);
  • 列标题颜色:
smartTable.getConfig().setColumnTitleBackground((canvas, rect, paint) -> { 
	paint.setColor(ResUtils.getColor(requireContext(), R.color.theme_color)); 
	canvas.drawRect(rect, paint);
 });

隐藏x,y序列之后 , 列标题的颜色没了 , 当显示x序列 , 标题颜色又正常显示
这个是bug吗? 还是我设置的方式不对?

  • 解决方案1

当隐藏x序列的时候 , 列标题背景颜色设置无效 , 其实这个时候显示的是透明 , 解决方案就是给SmartTable控件设置背景色 , 然后行也要单独设置颜色 , 这样就突出标题颜色不一样了
但是这种解决方案有个问题 , 就是表格内容没有这么多的时候 , 而表格又设置了填满父布局 , 就会出现表格下面多出背景颜色的情况

  • 终极解决方案

不需要給smartTable渲染颜色 , 隐藏x序列的時候 , 渲染标题背景顏色的画笔没有设置填满属性 , 加上去就好了

// 設置表頭背景顏色
smartTable.getConfig().setColumnTitleBackground((canvas, rect, paint) -> {
	paint.setStyle(Paint.Style.FILL); // 解決代碼,畫筆缺少填滿屬性
	paint.setColor(ResUtils.getColor(requireContext(), R.color.theme_color));
	canvas.drawRect(rect, paint);
});
 类似资料: