同样是富文本处理的问题,设置一个 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 的用处。