【发布时间】:2021-10-27 06:45:30
【问题描述】:
我想根据我得到的数据将 TextView 样式从 Bold 切换为 Normal。
我是这样做的:
reserveCount.setText("Reservations " + reservationCount);
if(reservationCount<20){
Log.i("reserveCount", "typeface: NORMAL");
reserveCount.setTypeface(reserveCount.getTypeface(), Typeface.NORMAL);
} else {
Log.i("reserveCount", "typeface: BOLD");
reserveCount.setTypeface(reserveCount.getTypeface(), Typeface.BOLD);
}
但风格根本没有改变(一直保持粗体)。
【问题讨论】:
-
如果您使用自定义字体,最好使用不同的字体粗体和正常。
-
你检查过reserveCount的XML文件是不是字体是BOLD..?
-
if (Build.VERSION.SDK_INT >= 23) { textView.setTextAppearance(resId); } else { textView.setTextAppearance(textView.getContext(), resId); }
-
字体在 xml 中未设置为粗体,并且我没有使用任何自定义字体。有时它工作,有时不工作。我假设它是一些Android错误。我将字体设置为 BOLD 并将其更改为 BOLD,但如果我将其更改回 NORMAL,它将保持 BOLD。有时,如果我第一次将其更改为粗体,它会保持正常。所以我不明白发生了什么。
-
如果连续设置多次,看起来 setTetxtAppearance 和 setTypeface 有时都不起作用(我加载数据 1:它的粗体,我加载数据 2:它保持粗体)。这似乎是错误。