我有一个简单的Button
:
<Button
android:id="@+id/test"
android:textColor="@color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
并尝试通过以下方式更改文字属性:
SpannableString span = new SpannableString(text);
span.setSpan(new AbsoluteSizeSpan(8, true), 5, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
testButton.setText(span);
适用于Android 4.3,但不适用于5.0。
有趣的是,当我将实现从Button
更改为TextView
时,它在5.0上工作正常。似乎是棒棒糖中Button
的东西。
答案 0 :(得分:80)
默认情况下,“材质”按钮的样式设置为以全部大写字母显示文本。但是,用于大写的AllCapsTransformationMethod
存在导致其丢弃Spannable
数据的错误。
您可以通过在android:textAllCaps="false"
上指定Button
来覆盖默认按钮样式并禁用全部大写。
<Button
...
android:textAllCaps="false" />