Ich versuche, einige Text-Layout in Android ein wenig wie float="right"
in HTML zu erreichen. Ich habe zwei Texte in einem bestimmten Bereich meines Bildschirms. Ich würde einer von ihnen wie in einem Textview linksbündig werden, und einer von ihnen rechtsbündig werden, wie folgt aus (in dem die |
an jedem Ende des umschließenden Containers darstellen): -Make Text float-rechts in Android
| First text item label |
So weit das klingt einfach: ich könnte es mit zwei TextView
s in einer RelativeLayout
, die rechte auf layout_alignParentRight="true"
oder layout_gravity="right"
. Aber es gibt auch den Fall, dass der linke Text zu lang ist, um in den verbleibenden Platz zu passen. Mit einem RelativeLayout
wäre es mit dem rechten Text überlappen, aber ich will es in zwei Linien in diesem Fall brechen: -
| This text is way too long |
| label |
und in ähnlicher Weise, wenn der linke Text auf mehrere Zeilen fließt, mag ich die rechten Text auf der gleichen Linie zu passen, wenn möglich: -
| This text doesn't fit on |
| one line label |
Weil View
s in Android immer rechteckig sind, scheint es, wie es unmöglich wäre, mit zwei TextView
dieses letzte Beispiel Arbeit zu machen s auch wenn ich schrieb eine benutzerdefinierte Layout
. Ich schaute in Verwendung eines Spannable
, um mich den ganzen Text in einen TextView
setzen zu lassen, aber wieder AlignmentSpan
ist ein ParagraphStyle
, also sieht es nicht wie es aus, wird in der Lage sein, das Etikett auf die selbe Linie wie die Linke zu setzen Text auf diese Weise. Gibt es eine andere Art von Textspanne, die ich verwenden kann, um dies zu erreichen, oder sogar eine völlig andere Methode?
Im Moment sieht es so aus, als müsste ich entweder den Text in HTML setzen und eine WebView
verwenden (nicht toll, da die Ansicht in ein Listenelement gehen soll) oder ein benutzerdefiniertes TextView
Widget schreiben .
haben Sie eine benutzerdefinierte Ansicht in Betracht gezogen? – toadzky
Wie ich am Ende der Frage sage, ist das meine letzte Zuflucht, aber ich möchte diese Kosten vermeiden, wenn ich kann. –
Wenn Sie jemals den Google I/O Talks von Romain Guy hören, empfiehlt er immer eine benutzerdefinierte Ansicht zu verwenden. es gibt Ihnen eine bessere Leistung und ermöglicht eine Vielzahl von Anpassungen, ohne große Ansichtshierarchien zu erstellen. – toadzky