superposición superposicion samsung quita para pantalla desactivar cómo como aplicacion android layout textview imageview relativelayout

android - superposicion - superposición de pantalla samsung j7



¿Cómo evitar la superposición de vista en el diseño relativo en Android? (7)

Agregue esta línea uno a su diseño xml

herramientas: ignorar = "RelativeOverlap"

<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

El diseño anterior es una página que se divide horizontalmente, para el lado izquierdo, hay una lista de vista de texto y botón, para el lado derecho, hay una vista de imagen. El problema es: cuando el contenido de la vista de texto es demasiado largo, la vista de la imagen se superpondrá, además de usar bringtofront (), ¿hay alguna forma (en xml) de cambiar el ancho de la vista de texto si se superpone con la vista de imagen?


Alinee todas las textviews a leftOf imageview como lastone: android:layout_toLeftOf="@id/imageView1"


Si está utilizando este tipo de diseño, debe usar Layout lineal. y use las filas de tabla para mostrar este tipo de vista.

y también use peso para que su vista no se solape con otras vistas. intente así:

<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>

¡¡Espero eso ayude!!


Tuve un problema similar e intenté casi todo lo sugerido aquí y en otros hilos similares.

La única cosa adicional que lo hizo por mí fue agregar:

android:layout_toStartOf="@+id/youroverlappeditem"

por lo que el elemento superpuesto solo se ejecutará hasta el elemento superpuesto.

layout_toLeftOf no fue suficiente por sí mismo

y, por supuesto, ellipsize="end" fue necesario según corresponda.

El mío era para una vista de recyclerview con un diseño relativo.


Utilice layout_toStartOf en el primer elemento con el segundo elemento + ID debajo de comillas dobles

<?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>

tenga en cuenta este argumento en textview

android:layout_toStartOf="@+id/selectaccount"

Un XML se lee de arriba a abajo

así es como se representa el diseño en Android

  • android: layout_toStartOf = " @ id / item significa que el elemento se define por encima de esta línea
  • android: layout_toStartOf = " @ + id / item significa que el elemento aparecerá más tarde en algún lugar debajo de esta línea

puede superar ese problema haciendo clic en "inferir restricciones", siga la imagen que muestra el camino:


<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>