J'ai un RelativeLayout
jaune contenant un plus grand LinearLayout
rouge.
Afin de rendre l'ensemble LinearLayout
visible, j'ai défini Android:clipChildren="false"
, mais cela ne fonctionne pas comme prévu:
<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>
Android:clipChildren="true"
:avec le LinearLayout
rouge coupé comme prévu
Android:clipChildren="false"
:où la hauteur LinearLayout
est découpée et la largeur définie dans la présentation n'est pas respectée.
Qu'est-ce qui ne va pas?
MODIFIER
Si j'emballe le conteneur dans un LinearLayout
avec les deux dimensions correspondant à son parent, j'obtiens le même résultat (j'ai vérifié que le conteneur du conteneur LinearLayout remplissait tout l'écran).
<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>
EDIT 2
Si je mets l'attribut Android:clipChildren="false"
dans le parent LinearLayout, j'obtiens ce qui suit:
Aussi mis
Android:clipToPadding="false"
À côté de:
Android:clipChildren="false"
Android:clipChildren="false"
permet à chaque enfant de dessiner en dehors de ses propres limites, dans le parent. Il ne permet pas aux enfants de dessiner en dehors du parent lui-même. Pour cela, vous devez définir Android:clipChildren="false"
sur le grand-parent (également).
Je pense que ce que vous voyez avec les couleurs, c'est simplement parce que les couleurs n'ont pas de limites inhérentes. S'il n'y a rien qui les coupe, les couleurs disparaissent pour toujours. Ma théorie est que si vous utilisiez, par exemple, une image étirée de 1x1 px au lieu d'une couleur, les choses seraient différentes.
Une astuce permettant de résoudre votre problème consiste à ajouter une vue réservée.
<View
Android:layout_width="wrap_content"
Android:layout_height="1dp"
Android:background="?android:attr/listDivider"
Android:layout_alignParentBottom="true"/>
dans la mise en page relative et boum!
Pour moi, la limite de la mise en page relative semble être différente de la hauteur. La limite semble être celle où se termine le contenu ou le parent. Ajouter un peu de vue au bas de la fenêtre définit l’affichage en bas pour que tout fonctionne correctement.