android - setvisibility - No se puede obtener el atributo clipChildren=false para trabajar
setvisibility android studio (3)
También establecer
android:clipToPadding="false"
Junto a:
android:clipChildren="false"
Tengo un RelativeLayout
amarillo que contiene un LinearLayout
rojo más LinearLayout
.
Para hacer visible todo el LinearLayout
, establezco android:clipChildren="false"
, pero esto no funciona como se esperaba:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="44dp"
android:background="#FFFF00"
android:clipChildren="false" >
<LinearLayout
android:layout_width="50dp"
android:layout_height="100dp"
android:background="#FF0000"
android:orientation="vertical" >
</LinearLayout>
</RelativeLayout>
- con
android:clipChildren="true"
:
con el LinearLayout
rojo recortado como se esperaba
- con
android:clipChildren="false"
:
donde se LinearLayout
altura LinearLayout
y no se respeta el ancho establecido en el diseño.
Que pasa
EDITAR
Si LinearLayout
el contenedor en un LinearLayout
con ambas dimensiones que coinciden con su padre, obtengo el mismo resultado (verifiqué que el contenedor del contenedor LinearLayout llena toda la pantalla).
<LinearLayout 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">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="44dp"
android:background="#FFFF00"
android:clipChildren="false" >
<LinearLayout
android:layout_width="50dp"
android:layout_height="100dp"
android:background="#FF0000"
android:orientation="vertical" >
</LinearLayout>
</RelativeLayout>
</LinearLayout>
Editar 2
Si pongo el android:clipChildren="false"
en el LinearLayout principal, obtengo lo siguiente:
Un truco que puede resolver su problema es agregar una vista de marcador de posición
<View
android:layout_width="wrap_content"
android:layout_height="1dp"
android:background="?android:attr/listDivider"
android:layout_alignParentBottom="true"/>
En el diseño relativo y auge!
Explicación
Para mí, el límite del diseño relativo parece ser diferente de la altura. El límite parece ser donde termina el contenido o donde termina el padre. Al agregar un poco de vista a la parte inferior, se establece el botín en la parte inferior para que todo funcione bien.
android:clipChildren="false"
permite que cada niño dibuje fuera de sus propios límites, dentro del padre. No permite que los niños dibujen fuera del padre. Para eso necesitarías configurar android:clipChildren="false"
en el abuelo (también).
Creo que lo que estás viendo con los colores es solo porque los colores no tienen límites inherentes. Si no hay nada que los recorte, los colores se van para siempre. Mi teoría es que si usas, digamos, una imagen estirada de 1x1 px en lugar de un color, las cosas serían diferentes.