huangyanbin / smartTable

一款android自动生成表格框架---An Android automatically generated table framework
https://juejin.im/post/5a5dce7651882573256bd043
5.16k stars 858 forks source link

表单模式,使用MultiLineDrawFormat实现内容换行,行高无法自适应 #266

Open android-taoge opened 3 years ago

android-taoge commented 3 years ago

表单模式下,使用MultiLineDrawFormat换行文本,当Form设置的spanWidthSize过大(比如总的spanSize为9,spanWidthSize为7),换行后的单元格高度不能自适应文本高度,会远远超过换行文本实际高度。

看了MultiLineDrawFormat源码,debug测量高度的方法 @Override public int measureHeight(Column column, int position, TableConfig config) {

    config.getContentStyle().fillPaint(textPaint);

    StaticLayout sl = new StaticLayout(column.format(position), textPaint, column.getWidth(), Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
    return sl.getHeight();

}

发现column.getWidth()始终为0, 所以StaticLayout获取的高度不准确, 请问这个怎么修改呢?