一样是富文本处理的问题,设置一个 Typeface.BOLD 类型的 StyleSpan 可使该块中的文本变为粗体,可是却不能以一样的方法覆盖一个 Typeface.NORMAL 类型来取消这段块的粗体样式,最终仍是只能使用清除块的方式来达到此目的:ide
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 的用途。spa