<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical" >
<RelativeLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" >
<TextView
Android:id="@+id/textView1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentTop="true"
Android:layout_alignParentLeft="true"
Android:textSize="30sp" />
<TextView
Android:id="@+id/textView2"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@id/textView1"
Android:textSize="20sp" />
<TextView
Android:id="@+id/textView3"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@id/textView2"
Android:textSize="20sp" />
<TextView
Android:id="@+id/textView4"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@id/textView3"
Android:textSize="20sp" />
<TextView
Android:id="@+id/textView5"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@id/textView4"
Android:textSize="20sp" />
<TextView
Android:id="@+id/textView6"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@id/textView5"
Android:textSize="20sp" />
<TextView
Android:id="@+id/textView7"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@id/textView6"
Android:textSize="20sp" />
<TextView
Android:id="@+id/textView8"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@id/textView7"
Android:textSize="20sp" />
<TextView
Android:id="@+id/textView9"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@id/textView8"
Android:textSize="20sp" />
<Button
Android:id="@+id/button1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@id/textView9" />
<TextView
Android:id="@+id/textView10"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="商店圖片:"
Android:textSize="15sp"
Android:layout_alignParentTop="true"
Android:layout_alignLeft="@id/imageView1" />
<ImageView
Android:id="@+id/imageView1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentRight="true"
Android:layout_below="@id/textView10"
Android:contentDescription="@string/top" />
</RelativeLayout>
Simple output:
textview1 textview9
textview2 imageview1
.
.
.
button1
Das obige Layout ist eine Seite, die horizontal unterteilt ist. Für die linke Seite gibt es eine Liste mit Textansicht und Schaltflächen. Für die rechte Seite gibt es eine Bildansicht. Das Problem ist: Wenn der Inhalt der Textansicht zu lang ist, überlappt die Bildansicht deren Inhalt. Abgesehen von der Verwendung von bringenofront () gibt es eine Möglichkeit (in xml), die Breite der Textansicht zu ändern, wenn sie sich mit der Bildansicht überlappt?
Wenn Sie diese Art von Design verwenden, sollten Sie lineares Layout verwenden und Tabellenzeilen verwenden, um diese Art von Ansicht anzuzeigen.
und verwenden Sie auch Gewicht, damit sich Ihre Ansicht nicht mit anderen Ansichten überschneidet. versuchen Sie es so:
<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical" >
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical" >
<TableRow
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:gravity="center"
Android:weightSum="10">
<TextView
Android:id="@+id/textView1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentTop="true"
Android:layout_alignParentLeft="true"
Android:textSize="30sp"
Android:text="test"
Android:layout_weight="5" />
<TextView
Android:id="@+id/textView2"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@id/textView1"
Android:textSize="20sp"
Android:text="test"
Android:layout_weight="5"/>
</TableRow>
</LinearLayout>
</ScrollView>
Ich hoffe es hilft!!
Verwenden Sie layout_toStartOf im ersten Element mit dem zweiten Element + ID unter doppelten Anführungszeichen
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="horizontal" >
<TextView
Android:id="@+id/email"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentLeft="true"
Android:layout_centerVertical="true"
Android:layout_toStartOf="@+id/selectaccount"
Android:text="very long text which used to overlap over radio button"
Android:textAppearance="?android:attr/textAppearanceMedium" />
<RadioButton
Android:id="@+id/selectaccount"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentRight="true"
Android:layout_centerVertical="true" />
</RelativeLayout>
beachten Sie dieses Argument in der Textansicht
Android:layout_toStartOf="@+id/selectaccount"
Ein XML wird von oben nach unten gelesen
so wird also das Layout in Android gerendert
Richten Sie alle Textansichten wie lastone an leftOf imageview aus: Android:layout_toLeftOf="@id/imageView1"
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:weightSum="1.0" >
<LinearLayout
Android:layout_width="0dp"
Android:layout_height="match_parent"
Android:layout_weight=".5"
Android:orientation="vertical" >
<TextView
Android:id="@+id/textView1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Large Text"
/>
<TextView
Android:id="@+id/textView2"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Medium Text"
/>
<TextView
Android:id="@+id/textView3"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Medium Text"
/>
</LinearLayout>
<LinearLayout
Android:layout_width="0dp"
Android:layout_height="match_parent"
Android:layout_weight=".5"
Android:orientation="vertical" >
<ImageView
Android:id="@+id/imageView1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@drawable/ic_launcher" />
</LinearLayout>
Ich hatte ein ähnliches Problem und versuchte so ziemlich alles, was hier und in anderen ähnlichen Threads vorgeschlagen wurde.
Das einzige, was es für mich getan hat, war folgendes hinzuzufügen:
Android:layout_toStartOf="@+id/youroverlappeditem"
das überlappende Element wird also nur bis zum überlappenden Element ausgeführt.
layout_toLeftOf
war alleine nicht genug
und natürlich war ellipsize="end"
erforderlich.
Meins war für eine recyclerview
mit einem relativen Layout.
Testen Sie das Constraint-Layout . Es vereinfacht Ihr Layout.