Может кто сталкивался с такой проблемой и знает решение?
Когда из программы уменьшаешь размер шрифта tv.setTextSize(font), то видно, что размер текста уменьшился, а вот выравнивание текста по вертикали не произошло, хотя tv.Gravity=Gravity.CENTER и в LinearLayout.LayoutParams.Gravity=center
Как сделать выравнивание?
Нет вертикального выравнивания текста в TextView
Re: Нет вертикального выравнивания текста в TextView
в TextView:
[syntax=xml]android:gravity="center_horizontal|center_vertical"[/syntax]
[syntax=xml]android:gravity="center_horizontal|center_vertical"[/syntax]
Re: Нет вертикального выравнивания текста в TextView
Это дает выравнивание на начальном этапе, когда программу запустили.altwin писал(а):в TextView: android:gravity="center_horizontal|center_vertical"
А потом, когда программно уменьшаем размер шрифта, то текст, уменьшаясь в размере, остается на уровне нижней линии текста.
Хотя теоретически, если текст стал меньше в размере, то он занимает меньше места по вертикали и следовательно он должен подняться чуть вверх, чтобы сохранить вертикальное выравнивание.
Или я ошибаюсь?
Re: Нет вертикального выравнивания текста в TextView
Мне обычно дает помощь в просмотре границ эллементов - фишка в телефоне-настройки-для разработчиков-расширенные-показать границы макета. Тогда я вижу границы какого эллемента не так расположины как я планирую и исправляю.
Мой первенец: MyMoney. Менеджер расходов
Бьем рекорды русских топов
Могу ответить на любые вопросы по маркетингу и развитию.
Бьем рекорды русских топов
Могу ответить на любые вопросы по маркетингу и развитию.
Re: Нет вертикального выравнивания текста в TextView
попробуйте сделать тоже самое но программно, т.е. после того, как изменяете размер шрифта вызовите метод: yourTextView.setGravity(Gravity.CENTER_VERTICAL)gtkgroup писал(а):Это дает выравнивание на начальном этапе, когда программу запустили.altwin писал(а):в TextView: android:gravity="center_horizontal|center_vertical"
А потом, когда программно уменьшаем размер шрифта, то текст, уменьшаясь в размере, остается на уровне нижней линии текста.
Хотя теоретически, если текст стал меньше в размере, то он занимает меньше места по вертикали и следовательно он должен подняться чуть вверх, чтобы сохранить вертикальное выравнивание.
Или я ошибаюсь?
Re: Нет вертикального выравнивания текста в TextView
Разобрался, может кому пригодится.
Во-первых, этот косяк проявляется не везде, а только в версии Андроид ICS.
Во-вторых для его устранения надо к тексту добавить непечатный символ
Выглядит это так:
Код
final String DOUBLE_BYTE_WORDJOINER = "\u2060";
text.setText(text + DOUBLE_BYTE_WORDJOINER);
Проверяя рекомендацию, я обнаружил, что DOUBLE_BYTE_WORDJOINER увеличивает ширину текста, поэтому нашел ему замену в виде "\u200B" или "\uFEFF" (оба символа имеют нулевую ширину)
Теперь выравнивание по вертикали работает на все 100%
Источник: https://code.google.co…issues/detail?id=22493
Спасибо всем откликнувшимся, удачи!
Во-первых, этот косяк проявляется не везде, а только в версии Андроид ICS.
Во-вторых для его устранения надо к тексту добавить непечатный символ
Выглядит это так:
Код
final String DOUBLE_BYTE_WORDJOINER = "\u2060";
text.setText(text + DOUBLE_BYTE_WORDJOINER);
Проверяя рекомендацию, я обнаружил, что DOUBLE_BYTE_WORDJOINER увеличивает ширину текста, поэтому нашел ему замену в виде "\u200B" или "\uFEFF" (оба символа имеют нулевую ширину)
Теперь выравнивание по вертикали работает на все 100%
Источник: https://code.google.co…issues/detail?id=22493
Спасибо всем откликнувшимся, удачи!