Android: как сделать неразрывный блок в TextView? - PullRequest
6 голосов
/ 18 августа 2011

У меня есть длинный текст, содержащий имя, которое выглядит как «нечто-что-то». Этот длинный текст отображается в TextView. Проблема в том, что "что-то" что-то сломано.

Я обнаружил Unicode-символ U + 2011 НЕПЕРЕРЫВАЮЩИЙСЯ ГИФЕН Но похоже, что этот символ Юникода поддерживается в шрифте начиная с Android 3.0. Однако я поддерживаю Android 2.1, где вместо него отображается символ замены.

Я посмотрел на класс Spannable, но не нашел, как определить неразрывный блок текста. Может быть, я что-то упускаю.

1 Ответ

2 голосов
/ 26 августа 2011

Я решил разбить текстовый блок, реализовав 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));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...