LinearLayout, RelativeLayout, etc. les marges ne fonctionnent pas comme prévu
Les marges de groupe dispositions ne semblent pas fonctionner.
Par exemple,
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_margin="40dip"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="I'm a button" />
</LinearLayout>
devrait afficher un bouton avec 40p marges sur tous les côtés. Cependant, il a 80p marges à droite et en bas.
Je fais quelque chose de mal?
Est-ce un bug?
Une solution consisterait à utiliser la gravité, mais cela ne fonctionne qu'avec les même marges.
BTW, il y a une question similaire posté ici mais n'a pas été répondu.
- essayez de régler le bouton du centre horizontal
Vous devez vous connecter pour publier un commentaire.
android:padding="40dp"
sur le LinearLayout ouandroid:layout_margin="40dp"
sur le Bouton vous donne l'effet que vous voulez. Rembourrage définit l'espace entre les vues des bords et de son contenu, la mise en page de la marge définit l'espace supplémentaire sur les côtés de vue.LinearLayout
de tous les côtés par40dp
. Son étrange qu'il ne fonctionne pas comme prévu.Le problème est effectivement la façon dont
FrameLayout
interprète marges.setContentView()
attache votre "main" pour une présentationFrameLayout
, qui est la racine de la hiérarchie vue (vous pouvez le voir avec la Hiérarchie Viewer) et vous est offert par le téléphone.Marges sont gérés par le parent de mise en page, dans ce cas, que les principaux
FrameLayout
. Je ne sais pas si c'est une fonctionnalité ou un bug, mais c'est la façon dont cette disposition interprète marges.Si bien, la solution a déjà été posté pendant que j'étais en tapant: utiliser un rembourrage à la place.
si vous avez besoin de définir la marge pour une mise en page, il suffit de l'envelopper avec un autre linéaire ou relative de la mise en page
Habillage de Linéaire de la Mise en page avec un autre modèle est la meilleure stratégie.