Пользовательский набор текста Android TextView приводит к тому, что гравитация перестает работать
Обновить
Это только происходит с Roboto-Italic.ttf. Если вы столкнулись с этой проблемой, попробуйте другое семейство шрифтов.
Я сталкиваюсь со странной проблемой при применении набора текста к TextView. Имя приложения "Контакт" находится в LinearLayout с android:gravity="center"
установить, что заставляет его быть хорошо отцентрировано, как видно на изображении "До" ниже. Когда я устанавливаю гарнитуру, по какой-то причине гравитация перестает работать. Вот как я устанавливаю гарнитуру:
tvAppName.setTypeface(
Typeface.createFromAsset(getActivity().getAssets(),"fonts/Roboto-Italic.ttf"));
Есть идеи, почему это может происходить? Я пытался установить гравитацию программно, но это не помогло. Комментирование этой строки приводит к тому, что текст возвращается к центру.
До
После
1 ответ
Файл Roboto-Italic.ttf с сайта Google, похоже, поврежден или несовместим. Обходной путь - использовать обычный шрифт Roboto, но в качестве второго аргумента укажите курсив:
Typeface tf = Typeface.createFromAsset(getActivity().getAssets(), "fonts/Roboto-Normal.ttf"));
tvAppName.setTypeface(tf, Typeface.ITALIC);
Это подделывает курсив, накладывая перекос в текст. Таким образом, теоретически это выглядит не так хорошо, но оно решает проблему гравитации и других атрибутов макета, не работающих с настоящим Roboto Italic.