1

Я хочу добавить несколько проходов в текстовое окно с настраиваемым пространством строк. Я использую класс LineHeightSpan, определенный в android. Но, кажется, он ведет себя по-разному в Android M и более низкие версии Здесь результат в нижней версии AndroidLineHeightSpan в Android M и более поздних версиях

enter image description here

и это, как она выглядит в Android M enter image description here

Вот как я реализован в коде: Это моя реализация LineHeightSpan:

public class VerticalMarginSpan implements LineHeightSpan { 

    private final int value; 

    public VerticalMarginSpan(int value) { 
     this.value = value; 
    } 

    @Override 
    public void chooseHeight(CharSequence text, int start, int end, int spanstartv, int v, 
         Paint.FontMetricsInt fm) { 
     fm.ascent -= value/2; 
     fm.descent += (value/2); 
    } 
} 

И как я использую его:

SpannableStringBuilder builder = new SpannableStringBuilder(tempStr); 
    builder.setSpan(
      new VerticalMarginSpan(lineSpace), 
      0, 
      tempStr.length(), 
      Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
    txt.setText(builder); 

Как я могу исправить эту проблему?

ответ

3

Если у вас есть Marshmallow v6.0, я боюсь, что вы ничего не можете сделать в этом случае, поскольку сообщается об ошибке Here. Вы должны либо обновить устройство v6.0.1, как это было зафиксировано в этой версии или условно удалить логику от Зефир 6,0

EDIT: для получения дополнительной справки check this.

+1

Я решить эту проблему в Android M, добавив шрифт расстояние до текстового поля вместо применения LineHeightSpan. Вы спасли мое время. Спасибо. – Hojjat

Смежные вопросы