Wie bekommt man den Text von a TextView
im Blocksatz (mit links- und rechtsbündigem Text)?
Ich habe eine mögliche Lösung gefunden Hieraber es funktioniert nicht (auch wenn Sie vertical-center in center_vertical usw. ändern).
Wie bekommt man den Text von a TextView
im Blocksatz (mit links- und rechtsbündigem Text)?
Ich habe eine mögliche Lösung gefunden Hieraber es funktioniert nicht (auch wenn Sie vertical-center in center_vertical usw. ändern).
CommonsWare
Ich glaube nicht, dass Android die vollständige Rechtfertigung unterstützt.
UPDATE 01.01.2018: Android 8.0+ unterstützt Ausrichtungsmodi mit TextView
.
Nach weiterer Analyse könnten Sie android:gravity=”fill_horizontal” eine Chance geben. Das wird beschrieben als “Erweitern Sie die horizontale Größe des Objekts bei Bedarf, damit es seinen Container vollständig ausfüllt”, aber ich weiß nicht, wie sie den Text “vergrößern”.
– CommonsWare
18. August 2009 um 12:35 Uhr
android:gravity=”fill_horizontal” hat auch nicht funktioniert. Es sieht so aus, als ob Android doch keine Rechtfertigung unterstützt, na ja 🙂
– Benutzer130076
19. August 2009 um 11:37 Uhr
Nein, Sie können die Eigenschaft nicht wie die Schwerkraft festlegen. Sie können die Ausrichtung Ihres Textes jedoch immer noch festlegen, indem Sie die Webansicht anstelle der Textansicht verwenden. Sie können sich darauf beziehen seal.io/2010/12/only-way-how-to-align-text-in-block-in.html. (Gestohlen von stackoverflow.com/questions/5976627/…)
– jcaruso
17. Mai 2013 um 21:57 Uhr
@CommonsWare Gibt es jetzt eine richtige Möglichkeit, Text zu rechtfertigen?
– Johannes R
11. Februar 2014 um 10:58 Uhr
Mann, ich lebe mit starker Webansicht, um dies zu erreichen, und glauben Sie mir, meine Benutzeroberfläche schreit nach neuen Dingen, die der API noch hinzugefügt werden müssen, weil sie für Komponenten wie den Chat in einer Listenansicht verdammt langsam ist.
– nobalG
28. Dezember 2016 um 10:06 Uhr
einfachjimbo
Die @CommonsWare-Antwort ist richtig. Android 8.0+ unterstützt „Full Justification“ (oder einfach „Justification“, wie es manchmal mehrdeutig bezeichnet wird).
Android unterstützt auch “Bündige Links-/Rechts-Textausrichtung”. Siehe den Wikipedia-Artikel auf Rechtfertigung für die Unterscheidung. Viele Menschen betrachten das Konzept der „Ausrichtung“ als sowohl die vollständige Ausrichtung als auch die Links-/Rechts-Textausrichtung, was letztendlich das ist, wonach sie suchen, wenn sie eine Links-/Rechts-Textausrichtung durchführen möchten. Diese Antwort erklärt, wie Sie die linke/rechte Textausrichtung erreichen.
Es ist möglich, eine linksbündige / rechte Textausrichtung zu erreichen (im Gegensatz zur vollständigen Ausrichtung, wie in der Frage gefragt wird). Zur Veranschaulichung werde ich ein einfaches 2-Spalten-Formular (Beschriftungen in der linken Spalte und Textfelder in der rechten Spalte) als Beispiel verwenden. In diesem Beispiel wird der Text in den Beschriftungen in der linken Spalte rechtsbündig ausgerichtet, sodass sie bündig mit ihren Textfeldern in der rechten Spalte erscheinen.
Im XML-Layout können Sie die TextView-Elemente selbst (die linke Spalte) rechtsbündig ausrichten, indem Sie das folgende Attribut in allen TextViews hinzufügen:
<TextView
...
android:layout_gravity="center_vertical|end">
...
</TextView>
Wenn der Text jedoch in mehrere Zeilen umbrochen wird, wird der Text innerhalb der TextView weiterhin linksbündig ausgerichtet. Durch das Hinzufügen des folgenden Attributs wird der eigentliche Text innerhalb der TextView rechtsbündig (linksbündig) ausgerichtet:
<TextView
...
android:gravity="end">
...
</TextView>
Also die Schwere Das Attribut gibt an, wie der Text in der TextView ausgerichtet wird layout_gravity gibt an, wie das TextView-Element selbst ausgerichtet/angeordnet wird.
Wenn ich das richtig verstehe und die Ergebnisse dieser Tests gegeben sind, ist alles, was dies tut, Text links oder rechts auszurichten. Das rechtfertigt den Text nicht, oder?
– Paul Lammertsma
12. September 2011 um 7:31 Uhr
Exzellent. Nur um hinzuzufügen, wenn Sie eine Mittenausrichtung wünschen, können Sie dies tun android:layout_gravity="center_horizontal|center"
android:gravity="center"
.
– Luis A. Florit
8. Dezember 2012 um 5:33 Uhr
Dies ist nur eine Ausrichtung, keine Rechtfertigung. Lesen Sie diesen Wikipedia-Link sorgfältig durch. Der Unterschied zwischen den verschiedenen Begründungsarten betrifft nur die letzte Zeile eines Absatzes. Bei Absätzen mit nur einer Zeile gibt es keinen Links-/Rechts-/Mittensatz.
– Karu
30. Januar 2016 um 8:45 Uhr
warum antwortest du dann überhaupt hier, wenn es nicht darum geht justify
– Benutzer924
15. Oktober 2018 um 15:24 Uhr
Hier dreht sich alles um die linke oder rechte Ausrichtung, nicht um den Blocksatz (wie in MS Word). Formale Terminologie ist hier nicht hilfreich, Sie verstehen, was in der Frage gemeint ist.
– Shuvo Sarker
29. Februar 2020 um 6:44 Uhr
Jaydipsinh Zala
TextView
in Android O bietet selbst volle Rechtfertigung (neue typografische Ausrichtung).
Sie müssen nur dies tun:
Kotlin
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
textView.justificationMode = JUSTIFICATION_MODE_INTER_WORD
}
Java
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
textView.setJustificationMode(JUSTIFICATION_MODE_INTER_WORD);
}
XML
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:justificationMode="inter_word" />
Standard ist JUSTIFICATION_MODE_NONE
(none
im XML-Format).
Hoffen wir, dass es dann zurück in die Support-Bibliothek portiert wird, O 🙂
– Stefan Haustein
25. April 2017 um 18:39 Uhr
Bitte Bibliothek hier hinzufügen !!
– Kunal Dharaiya
29. Mai 2017 um 10:29 Uhr
wie kann man die Verwendung von XML rechtfertigen?
– Vikash Parajuli
2. März 2018 um 3:31 Uhr
Sie können android:justificationMode=”inter_word” in XML verwenden.
– Christian D
13. März 2018 um 15:20 Uhr
API 26 erforderlich für android:justificationMode.
– Bink
7. Dezember 2018 um 22:55 Uhr
Konrad Nowicki
Um Text in Android zu rechtfertigen, habe ich WebView verwendet
setContentView(R.layout.main);
WebView view = new WebView(this);
view.setVerticalScrollBarEnabled(false);
((LinearLayout)findViewById(R.id.inset_web_view)).addView(view);
view.loadData(getString(R.string.hello), "text/html; charset=utf-8", "utf-8");
und HTML.
<string name="hello">
<![CDATA[
<html>
<head></head>
<body style="text-align:justify;color:gray;background-color:black;">
Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Nunc pellentesque, urna
nec hendrerit pellentesque, risus massa
</body>
</html>
]]>
</string>
Ich kann noch keine Bilder hochladen, um es zu beweisen, aber “es funktioniert für mich”.
Mathew Kurian
Dafür haben wir eine einfache Klasse erstellt. Derzeit gibt es zwei Methoden, um das zu erreichen, wonach Sie suchen. Beides erfordert KEINE WEBANSICHT und UNTERSTÜTZT SPANNABLES.
BÜCHEREI: https://github.com/bluejamesbond/TextJustify-Android
UNTERSTÜTZT: Android 2.0 bis 5.X
EINRICHTEN
// Please visit Github for latest setup instructions.
BILDSCHIRMFOTO
Ist eine wirkliche Hilfe, aber wenn ich es verwende, meine TextViews behalten nicht das ursprüngliche Format bei, ich beziehe mich auf: Ränder, Textstil und ich denke, dass die Textgröße auch nicht, bitte arbeiten Sie weiter daran, sollte eine wirklich große Hilfe sein
– Leonardo Sapuy
17. März 2014 um 21:43 Uhr
Nun, ich kann diese Klassen nicht einrichten. Einer von ihnen hatte keinen Paketnamen, der andere gibt einen gelben Fehler aus. Eigentlich kann ich nicht vertrauen.
– Mehmet
22. April 2014 um 20:35 Uhr
Nette Bibliothek, aber ich weiß immer noch nicht, wie ich Text mit dieser Bibliothek formatieren kann.
– Semantiker
25. Juni 2014 um 11:11 Uhr
Vielen Dank für diese großartige gemeinsam genutzte Bibliothek, aber sie kann keinen persischen oder arabischen Text unterstützen. Wenn ich die Richtung vorgebe, zieht mein Wort vom letzten bis zum Anfang, anstatt vom Anfang bis zum letzten. Ich meine das: mein Wort ist: “سلام” und seine Auslosung so: “مالس” . (Wenn Sie kein Persisch verstehen, sehen Sie sich dieses Beispiel an: Lassen Sie mich “1234” -> “4321” )
– Naruto Uzumaki
25. Februar 2015 um 9:01 Uhr
Basierend auf scrollView … Schöne Lösung, kann aber noch keine Antwort finden, die es mit Textview möglich macht. 🙁
– superUser
8. Mai 2015 um 14:57 Uhr
Said Zarinfam
Sie können verwenden JustifiedTextView für Android Projekt in github. Dies ist eine benutzerdefinierte Ansicht, die Blocksatz für Sie simuliert. Es unterstützt Android 2.0+ und Sprachen von rechts nach links.
Ist eine wirkliche Hilfe, aber wenn ich es verwende, meine TextViews behalten nicht das ursprüngliche Format bei, ich beziehe mich auf: Ränder, Textstil und ich denke, dass die Textgröße auch nicht, bitte arbeiten Sie weiter daran, sollte eine wirklich große Hilfe sein
– Leonardo Sapuy
17. März 2014 um 21:43 Uhr
Nun, ich kann diese Klassen nicht einrichten. Einer von ihnen hatte keinen Paketnamen, der andere gibt einen gelben Fehler aus. Eigentlich kann ich nicht vertrauen.
– Mehmet
22. April 2014 um 20:35 Uhr
Nette Bibliothek, aber ich weiß immer noch nicht, wie ich Text mit dieser Bibliothek formatieren kann.
– Semantiker
25. Juni 2014 um 11:11 Uhr
Vielen Dank für diese großartige gemeinsam genutzte Bibliothek, aber sie kann keinen persischen oder arabischen Text unterstützen. Wenn ich die Richtung vorgebe, zieht mein Wort vom letzten bis zum Anfang, anstatt vom Anfang bis zum letzten. Ich meine das: mein Wort ist: “سلام” und seine Auslosung so: “مالس” . (Wenn Sie kein Persisch verstehen, sehen Sie sich dieses Beispiel an: Lassen Sie mich “1234” -> “4321” )
– Naruto Uzumaki
25. Februar 2015 um 9:01 Uhr
Basierend auf scrollView … Schöne Lösung, kann aber noch keine Antwort finden, die es mit Textview möglich macht. 🙁
– superUser
8. Mai 2015 um 14:57 Uhr
Frank Cheng
Ich schreibe eine Widget-Basis auf nativer Textansicht, um dies zu tun.
Ich würde dieses empfehlen, vor allem, weil es auf der ursprünglichen Textansicht des offiziellen Android-SDK basiert, was meiner persönlichen Meinung nach viel leichter ist als die Technik der Webansicht, die viele Leute zu diesem allgemeinen Thema posten. Wenn Sie eine App erstellen, die speicherintensiv sein muss, z. B. mit Listview-Objekten, sollten Sie so etwas in Betracht ziehen. Ï schon ausprobieren, funktioniert wie erwartet. Wenn Sie andere kennen, die besser sind als diese 1, können Sie Ihre Erfahrungen bitte mit mir teilen.
– superUser
8. Mai 2015 um 18:44 Uhr
Schöne Arbeit übrigens. Was ich gesucht habe.
– superUser
8. Mai 2015 um 18:44 Uhr
unterstützt keine RTL-Sprachen wie Persisch
– Feuer im Loch
28. Oktober 2015 um 11:45 Uhr
@Frank Cheng Sehr nützliche Bibliothek. Ich bekomme viele Leerzeichen am Ende des Absatzes. Wie kann ich es reparieren?
– iSrinivasan27
26. Februar 2016 um 5:00 Uhr
hat bei mir funktioniert, aber die letzte Zeile der Textansicht wurde abgeschnitten. Ich musste 5 für die Textansicht weiter auffüllen.
– Tharaka Nirmana
17. März 2016 um 5:42 Uhr
@Jimbo-Antwort ist richtig und funktioniert definitiv mein Fall an Eingabetext und Textübersicht für die sprache arabisch von rechts nach links eingabe und anzeige, aber für eingabetext musste ich auch gravity=”right” hinzufügen
– Shareef
21. Dezember 2012 um 16:33 Uhr
Sie können verwenden github.com/pouriaHemmati/JustifiedTextView
– Pouria Hämati
13. Juli 2019 um 11:37 Uhr
github.com/amilcar-sr/JustifiedTextView kann verwendet werden
– Reejesh PK
3. Juli 2021 um 15:49 Uhr