huangyanbin/smartTable

左边的序号怎么从0开始 或者下移一行

Years0315 opened this issue · 3 comments

序号1正好和标题对应 我想和我的数据对应

原因:

TableData类有个方法getYSequenceFormat用来格式化Y轴(也就是左边序号那一列)

/**
  * 获取Y序号列文字格式化
  * @return  Y序号列文字格式化
  */
  public ISequenceFormat getYSequenceFormat() {
    if(YSequenceFormat == null){
        YSequenceFormat = new NumberSequenceFormat();
    }
    return YSequenceFormat;
  }

如果没设置YSequenceFormat,会使用默认的NumberSequenceFormat,NumberSequenceFormat的实现如下

public class NumberSequenceFormat extends BaseSequenceFormat{
    @Override
    public String format(Integer position) {
        return String.valueOf(position);
    }
}

position的值是从1开始的,所以序号是从1开始

解决:

调用TableData.setYSequenceFormat(ISequenceFormat YSequenceFormat)方法设置ISequenceFormat即可,可以复写NumberSequenceFormat的format方法实现

Java版本:

tableData.setYSequenceFormat(new NumberSequenceFormat() {
    @Override
    public String format(Integer integer) {
        return (integer-1)+"";
    }
});

Kotlin版本:

tableData.ySequenceFormat = object : NumberSequenceFormat() {
     override fun format(position: Int): String {
         return (position - 1).toString()
     }
}

刚要查这个问题,就找到了这里。 kaerwen 给出的答案真是正解。感谢大佬

刚要查这个问题,就找到了这里。 kaerwen 给出的答案真是正解。感谢大佬

突然收到邮箱提醒,都不记得自己曾经回答过这个问题,能帮助到别人还是很开心的