0

Google ドキュメントで flags パラメータを読みましたが、正確に何をしているのかわかりません。たとえば、以下のコードでは:

SpannableStringBuilder builder1 = new SpannableStringBuilder();
builder1.append("hi");
builder1.append("this is test");
builder1.setSpan(new ForegroundColorSpan(Color.RED), 0, 7, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
myTextView.setText(builder1);

4 番目のパラメータを変更して、次のように変数を設定しても違いはありません: Spanned.SPAN_INCLUSIVE_INCLUSIVE,Spanned.SPAN_INCLUSIVE_EXCLUSIVE,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE

結果に違いはありません。

しかし、このコードを実行すると:

SpannableStringBuilder builder1 = new SpannableStringBuilder();
builder1.append("hi");
builder1.append("this is test");
builder1.setSpan(new ForegroundColorSpan(Color.RED), 0, 7, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);

SpannableStringBuilder builder2 = new SpannableStringBuilder();
builder1.append("second test this is going to be different");
builder1.setSpan(new BackgroundColorSpan(Color.BLUE), 10, 15, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);

SpannableStringBuilder all = new SpannableStringBuilder();
all.append(builder2);
all.insert(0, "\n");
all.insert(0, builder1);

builder1.setSpan に渡す 4 番目のパラメーターに基づいて、異なる結果が得られます。

誰かがなぜこれが起こるのか説明できますか?

4

1 に答える 1

0

このフラグは、入力メソッドの構成テキストに一時的なスタイル情報を適用するために使用されているスパンに設定されます。これにより、構成テキストが置き換えられるときにそれらを見つけて削除できます。

于 2016-12-19T10:53:26.990 に答える