Inconsistent behavior of SpannableStringBuilder Android 7.0

100 Views Asked by At

I have to show some characters or numbers in superscript and subscript in TextView. So I use SpannableStringBuilder but in Nougat its output is inconsistent.

public class MainActivity extends AppCompatActivity {


ArrayList<SpannableStringBuilder> MyList = new ArrayList<>();
TextView TextView;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    TextView = (TextView)findViewById(R.id.textView);

}

void AddText(){
    SpannableStringBuilder txt = new SpannableStringBuilder("TEST");
    txt.setSpan(new SuperscriptSpan(), 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    txt.setSpan(new RelativeSizeSpan(0.5f), 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

    MyList.add(txt);

    SpannableStringBuilder finalText = new SpannableStringBuilder(MyList.get(0));

    for (int i=1; i<=MyList.size()-1; i++)
        finalText.append(MyList.get(i));

    TextView.setText(finalText);

}

public void button(View view){
    AddText();
}

}

Here is the result

0

There are 0 best solutions below