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.