同样是富文本处理的问题,设置一个 Typeface.BOLD 类型的 StyleSpan 能够使该块中的文本变为粗体,然而却不能以同样的办法笼罩一个 Typeface.NORMAL 类型来勾销这段块的粗体款式,最终还是只能应用革除块的形式来达到此目标:
public class MainActivity extends AppCompatActivity {
EditText editText1;
@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText1 = findViewById(R.id.editText1);
SpannableString spannableString = new SpannableString("Hello World!");
spannableString.setSpan(new StyleSpan(Typeface.BOLD), 0, 3, Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
// 这句有效
//spannableString.setSpan(new StyleSpan(Typeface.NORMAL), 0, 3, Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
// 这句无效
spannableString.removeSpan(spannableString.getSpans(0, 3, StyleSpan.class)[0]);
editText1.setText(spannableString);
}
}
如果笼罩一个斜体款式到粗体款式上是无效的,然而笼罩这种一般款式却有效,所以至今我还是没有发现 Typeface.NORMAL 的用处。