一樣是富文本處理的問題,設置一個 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