Don't use BoringLayout to display text that has paragraph-style markup.
BoringLayout assumes it doesn't have to do any work to calculate the line height. In this case, though, there may actually be work to be done, so have it fall back to StaticLayout to do the more thorough job. Bug 2051050
This commit is contained in:
@@ -19,6 +19,7 @@ package android.text;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Path;
|
||||
import android.text.style.ParagraphStyle;
|
||||
import android.util.FloatMath;
|
||||
|
||||
/**
|
||||
@@ -262,6 +263,14 @@ public class BoringLayout extends Layout implements TextUtils.EllipsizeCallback
|
||||
|
||||
TextUtils.recycle(temp);
|
||||
|
||||
if (boring && text instanceof Spanned) {
|
||||
Spanned sp = (Spanned) text;
|
||||
Object[] styles = sp.getSpans(0, text.length(), ParagraphStyle.class);
|
||||
if (styles.length > 0) {
|
||||
boring = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (boring) {
|
||||
Metrics fm = metrics;
|
||||
if (fm == null) {
|
||||
|
||||
Reference in New Issue
Block a user