TextView isBold всегда возвращает NORMAL

Я устанавливаю гарнитуру текстового представления, как это

textView.setTypeface(tf_roboto_medium, Typeface.BOLD);

Когда я проверяю стиль с помощью этой команды, она оценивается как истинная.

if (textView.getTypeface().getStyle() == Typeface.NORMAL) {
// always here
}
else {
// never here
}

[РЕДАКТИРОВАТЬ] Вот мой контент XML для TextView

<TextView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="Train"
                android:textColor="#777777"
                android:gravity="bottom|center"
                android:singleLine="true"
                android:id="@+id/txt_train"
                android:layout_gravity="left"
                android:layout_weight="15"
                android:textSize="32px"
                android:onClick="onTrainClick"
                android:clickable="true" />

Что я делаю неправильно?

PS: я читал другие посты, просящие то же самое. Ни один из них, кажется, не работает для меня. Таким образом, вопрос

2 ответа

Попробуйте один из них это:

  1. if (textView.getTypeface().isBold()) {
  2. if ((textView.getTypeface().getStyle() & Typeface.BOLD) > 0) {

Из того, что я вижу, есть битовая маска, используемая для стилей шрифта. Нормальный == 0, поэтому могут быть проблемы с 0 & 0

Вы можете сделать строку:

<string name="train"><b>Train</b></string>

А затем установите:

android:text="@string/train"
Другие вопросы по тегам