Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using span to insert tab in textview

Is there a way to add a tab character to a piece of text using span in textview? From the developer documentation, I came across TabStopSpan (see here) and tried to use it in a TextView like so:

String source = "Hello World! Let's select some text!!";

        SpannableString s = new SpannableString(source);
        s.setSpan(new TabStopSpan() {
            @Override
            public int getTabStop() {
                return 100;
            }
        }, 5, 10, 0);
ed.setText(s, BufferType.SPANNABLE);  

Where ed is a TextView. The above snippet does not do anything and the documentation is so less as to be pretty much useless. Is there any way to add a tab character to a TextView using spans?

like image 697
Sriram Avatar asked Jul 13 '26 19:07

Sriram


2 Answers

Just add "\t" for a tab, "\n" for a new line. For example:

String source = "Hello!\tLets select some text!";
like image 112
Manuel Allenspach Avatar answered Jul 18 '26 08:07

Manuel Allenspach


Yes. combination of "\t" and TabStopSpannable will do the trick. The snippet below adds a tab between firstString and secondString:

    SpannableStringBuilder span = new SpannableStringBuilder(firstString +"\t"+ secondString);
    span.setSpan(new TabStopSpan.Standard(600), 0, span.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE );
    }

    ((TextView) v).setText(span, TextView.BufferType.SPANNABLE);

Be careful to use a meaningful value in the TabStopSpan.Standard constructor, preferably based on screendimensions.

like image 23
Met-Mari Avatar answered Jul 18 '26 08:07

Met-Mari



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!