1

Ich möchte mehrere Bereiche zu einer Textansicht mit konfigurierbaren Zeilenabstand hinzufügen. Ich verwende die LineHeightSpan-Klasse, die in Android definiert ist. Aber es scheint, es anders in Android M verhalten und niedrigeren Versionen Hier das Ergebnis in niedriger Version von AndroidLineHeightSpan in Android M und niedrigeren Versionen

enter image description here

und dies ist, wie es in Android M sieht enter image description here

ist hier, wie ich in Code implementiert: Dies ist meine Implementierung von 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); 
    } 
} 

Und wie ich es verwenden:

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

Wie kann ich das Problem beheben?

Antwort

3

Wenn Sie haben Marshmallow v6.0 Ich fürchte, Sie können nichts in diesem Fall tun, da es Fehler gemeldet Here ist. Sie müssen entweder Ihr Gerät v6.0.1 aktualisieren, da es in dieser Version behoben wurde oder bedingt Ihre Logik aus Eibisch 6.0

EDIT zu entfernen: für mehr Referenz check this.

+1

ich dieses Problem in Android M lösen, indem Schrift Hinzufügen Abstand zu Textansicht anstatt LineHeightSpan anzuwenden. Du hast meine Zeit gerettet. Vielen Dank. – Hojjat

Verwandte Themen