2015-10-13 3 views
7

Ich habe einige Text, die mehr als einen Absatz (mit "\ n") und möchten einen Abstand zwischen den Absätzen, aber ohne Verwendung von "\ n \ n". Aber der Text aus dem gleichen Absatz möchte ich mit einem niedrigeren Platz halten.So vergrößern Sie den Abstand zwischen Absätzen in einer Textansicht

Ich versuchte mit lineSpacingExtra und lineSpacingMultiplier, aber es setzt Leerzeichen zu jeder Zeile (insinde der Absatz auch).

Ich möchte etwas wie folgt aus:

Multiparagraph padding

+0

Wenn Sie so viel Kontrolle über den Abstand zwischen Absätzen wollen, ist es besser, den zweiten Absatz in einen anderen TextView zu setzen und ihn mit Rändern und Padding zu versehen. – NoChinDeluxe

+0

Das Problem ist, dass ich nicht weiß, wie viele Absätze den Text haben werden. Ich wollte wissen, gibt es eine einfachere Möglichkeit, Leerzeichen hinzuzufügen, ohne Textansichten dynamisch mit Rändern zwischen ihnen hinzufügen –

+0

Nun das Bild, das Sie in Ihre Frage geschrieben ist, was Sie mit '\ n \ n bekommen sollten. Wenn du das nicht bekommst, dann stimmt etwas anderes nicht. – NoChinDeluxe

Antwort

1

Sie

Html.fromHtml(String); 

verwenden Dieser wird Ihnen helfen, String in Form von HTML zu schreiben, in dem Sie die HTML-Tags wie <p> verwenden können, <h1> usw.

Beispiel:

myTextView.setText(Html.fromHtml("<p>This is it first<br>paragraph.</p><p>This is the second<br>paragraph.</p>")); 
2

können Sie Spannable die Nutzung dieses Ziel zu erreichen:

String formattedText = text.replaceAll("\n", "\n\n"); 
SpannableString spannableString = new SpannableString(formattedText); 

Matcher matcher = Pattern.compile("\n\n").matcher(formattedText); 
while (matcher.find()) { 
    spannableString.setSpan(new AbsoluteSizeSpan(25, true), matcher.start() + 1, matcher.end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
} 

Der obige Code ersetzt alle Zeile mit zwei Zeilenumbrüche bricht. Danach wird die absolute Größe für jeden zweiten Zeilenumbruch festgelegt.