Android 富文本加粗與取消加粗的問題

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

相關文章
相關標籤/搜索