【问题标题】:How do I indent a text line in TextView in android?如何在 android 的 TextView 中缩进文本行?
【发布时间】:2014-06-05 11:06:35
【问题描述】:

我正在用 android 写一个超过两行的文本现在我的问题是我如何缩进第二行我​​的文本行。

1.my name is qadeer hussain

iam fine how  Ru.

但我想要

1.my name is qadeer hussain

     iam fine how  Ru.

这里的第二行不是从第一行的正下方开始,而是在名称的正下方

【问题讨论】:

    标签: android


    【解决方案1】:

    使用LeadingMarginSpan.StandardSpannableString,或者如果您还需要子弹,请使用BulletSpan

    只需像这样创建一个函数:

    static SpannableString createIndentedText(String text, int marginFirstLine, int marginNextLines) {
        SpannableString result=new SpannableString(text);
        result.setSpan(new LeadingMarginSpan.Standard(marginFirstLine, marginNextLines),0,text.length(),0);
        return result;
    }
    

    然后,每当您需要缩进的行时,您都可以这样做:

    myTextView.setText(createIndentedText("my text that's gonna be indented", 10, 10));
    

    第一个参数是第一行的缩进,第二个参数是下一行的缩进,以防你想将第一行的缩进与后面的不同。

    【讨论】:

    • 你能详细说明一下吗
    • 效果很好。应该是这个问题的已接受答案!
    • 完美。顺便说一句,在单个字符串中使用 \n 时,它会重新启动每个新行的跨越!
    【解决方案2】:

    您可以使用 \t 来表示间距,使用 \n 来表示换行。您可以根据需要为文本使用尽可能多的新行和 \t 间距。以您为例:

        textView.setSingleLine(false);
        textView.setText("1.my name is qadeer hussain\n\tiam fine how  Ru.");
    

    【讨论】:

    • 但我不知道我的字符串从哪里中断并显示在下一行,因为不同的 android 设备有不同的屏幕尺寸
    【解决方案3】:

    尝试在要缩进的内容之前使用\t。如果您需要进一步缩进,请使用更多

    【讨论】:

    • 但是我怎么知道我的字符串显示在下一行,因为不同的 android 设备有不同的屏幕尺寸
    • 好吧,你实际上可以预测,试试看这里:stackoverflow.com/questions/3654321/… 你现在要做的就是检查你的屏幕大小并与文本大小进行比较,以计算它的大小在同一行。现在一切都取决于您想要实现的目标。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多