Android:如何在TextView中创建不可破坏的块?

Sal*_*alw 6 android textview

我的长文本包含看起来像"某事物"的名字.这个长文本显示在TextView中.问题是"某事 - 某事"被打破了.

我找到了unicode角色U + 2011 NON-BREAKING HYPHEN.但是从Android 3.0开始,它看起来像字体支持这个unicode字符.但是我支持Android 2.1,而是显示替换字符.

我看过类Spannable,但我没有找到如何定义不间断的文本块.也许我忽视了一些事情

Sal*_*alw 2

我通过实现ReplacementSpan在单个块中渲染文本来解决文本块的破坏问题。这是代码:

public class NonbreakingSpan extends ReplacementSpan {

    @Override
    public void draw(
            Canvas canvas,
            CharSequence text, int start, int end,
            float x, int top, int y, int bottom,
            Paint paint) {
        canvas.drawText(text, start, end, x, y, paint);
    }

    @Override
    public int getSize(
            Paint paint,
            CharSequence text, int start, int end,
            FontMetricsInt fm) {
        return Math.round(paint.measureText(text, start, end));
    }
}
Run Code Online (Sandbox Code Playgroud)