top studio layout_below layout_alignparentstart bottom align android android-relativelayout

android - studio - Usando layout_above en un RelativeLayout



layout_alignparentstart android (4)

¿Puede alguien explicarme por qué ImageView no aparece por encima de LinearLayout?

<RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> <LinearLayout android:id="@+id/rev_main" android:layout_width="fill_parent" android:layout_height="wrap_content"> <!-- some stuff in here --> </LinearLayout> <ImageView android:id="@+id/rev_arrow" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/arrow" android:layout_above="@id/rev_main" /> </RelativeLayout>

No lo entiendo


Esto sucede cuando se especifica la alineación con respecto a otro diseño. La solución que encontré fue ir en la otra dirección.

En lugar de decirle a ImageView que esté por encima de LinearLayout, dígale a LinearLayout que esté por debajo de ImageView.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content"> <LinearLayout android:id="@+id/rev_main" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/rev_arrow"> <!-- some stuff in here --> </LinearLayout> <ImageView android:id="@+id/rev_arrow" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/arrow" /> </RelativeLayout>


Lo siguiente debería funcionar para usted:

<RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> <ImageView android:id="@+id/rev_arrow" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/arrow" android:layout_alignParentTop="true" /> <LinearLayout android:id="@+id/rev_main" android:layout_width="fill_parent" android:layout_below="@id/rev_arrow" android:layout_height="wrap_content"> <!-- some stuff in here --> </LinearLayout> </RelativeLayout>


Si tiene tal problema en ListView, asegúrese de utilizar el método de inflación adecuado. El grupo de vista principal debe especificarse para la inflación correcta.

mLayoutInflater.inflate(R.layout.listitem, parent, false);

No usar

mLayoutInflater.inflate(R.layout.listitem, null);


Tuve un problema similar creando un menú de opciones personalizado. La forma más sencilla de establecer el orden z de las vistas era hacerlo mediante programación. Si desea cambiar el orden a veces, debe llamar fácilmente:

ImageView yourImageView = (ImageView)findViewById(R.id.rev_arrow); yourImageView.bringToFront();

No sé si es adaptable a su aplicación, pero en mi caso funciona perfectamente. Si necesitas más código, házmelo saber.