Ich möchte 3 TextViews
in einer Ansicht haben. Die TextViews
muss nacheinander horizontal um beispielsweise 10 dp Rand getrennt werden. Angenommen, ein Inhalt von TextView
überschreitet eine Zeile, der verbleibende Inhalt zusammen mit dem verbleibenden TextViews
sollte wie bei Verwendung von wrap_content
in die nächste Zeile verschoben werden. Ich möchte nicht, dass TextViews
den gleichen Platz einnimmt. Es sollte Platz nur nach seinem Inhalt belegenHinzufügen von TextViews durch Leerzeichen getrennt
Antwort
Ich denke, Sie wollen FlowLayout
? FlowLayout:
Erweitertes lineares Layout, das seinen Inhalt umschließt, wenn in der aktuellen Zeile kein Platz mehr vorhanden ist.
es als Abhängigkeit in Gradle hinzufügen als: compile 'org.apmem.tools:layouts:[email protected]'
und erklärt in xml:
<org.apmem.tools.layouts.FlowLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
</org.apmem.tools.layouts.FlowLayout>
So gibt es keine andere einfache Möglichkeit, dies zu tun, außer Dinge mit Bibliotheken zu verkomplizieren ?? – Jas
@Jas AFAIK, es gibt keinen Weg. Sie können versuchen, Ihre eigene 'Custom ViewGroup' zu erstellen, aber ich denke, dass es komplizierter ist. Mit dem obigen 'FlowLayout' können Sie einfach Ihre Ansicht als' LinearLayout' hinzufügen, das ist alles. –
Ich schlage vor, einen String-Builder mit 1 Textansicht anstelle von 3 Textansichten verwenden - es wird mehr straigthforward sein, weniger Views (weniger teuer) und einfacher zu pflegen
Edit: Wenn Sie später Teile dieses Textview zugreifen müssen, können Sie Teile des Textview Text in String-Felder speichern. Auf diese Weise ist Ihre Ansichtshierarchie einfach und Sie können immer noch auf die Textpartikel zugreifen.
Pseudo-Code Beispiel: string1 = "Kartoffeln"; string2 = "sind besser als"; string3 = "Gurken"; textview.setText (Zeichenfolge1 + Zeichenfolge2 + Zeichenfolge3);
Verwenden weightSum für Linearlayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="3"
android:orientation="horizontal"
>
Sie die layout_weight jeden Textview 1 und die weightSum in Linearlayout bis 3, dies zu erreichen setzen.
<TextView
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_width="0dp"/>
Offizielle Führer - http://developer.android.com/reference/android/widget/LinearLayout.html#attr_android:weightSum
andere Tutorial - http://androidtuts.weebly.com/xml-layout-weightsum-weight.html
Update:
Wenn Sie Raum zwischen 3 Textviews hinzufügen "Space" Ansicht. & Gewicht einstellen, wie Sie benötigt haben.
oder benutzen Rand nach links oder rechts
Was fragen Sie genau? –
getrennt durch Komma bedeutet? –
Was hast du probiert? – Sree