Comment puis-je obtenir la valeur de la marge d'une vue d'une activité? La vue peut être de tout type.
Après un peu de recherche, j'ai trouvé des moyens d'obtenir un remplissage de vue, mais je n'ai rien trouvé sur Margin. Quelqu'un peut-il aider?
J'ai essayé quelque chose comme ça,
ViewGroup.LayoutParams vlp = view.getLayoutParams();
int marginBottom = ((LinearLayout.LayoutParams) vlp).bottomMargin;
Cela fonctionne, mais dans le code ci-dessus, j'ai supposé que la vue était un LinearLayout
. Mais je dois obtenir l'attribut margin
même quand je ne connais pas le type de vue.
essaye ça:
View view = findViewById(...) //or however you need it
LayoutParams lp = (LayoutParams) view.getLayoutParams();
les marges sont accessibles via
lp.leftMargin;
lp.rightMargin;
lp.topMargin;
lp.bottomMargin;
éditer: peut-être ViewGroup.MarginLayoutParams
travaillera pour vous. C'est une classe de base pour les autres LayoutParams
.
ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
http://developer.Android.com/reference/Android/view/ViewGroup.MarginLayoutParams.html
Essayer
ViewGroup.MarginLayoutParams vlp = (MarginLayoutParams) view.getLayoutParams()
vlp.rightMargin
vlp.bottomMargin
vlp.leftMargin
vlp.topMargin
Cela a retourné les marges correctes pour mon point de vue au moins.
http://developer.Android.com/reference/Android/view/ViewGroup.MarginLayoutParams.html
maintenant, utilisez ce code édité. cela vous aidera
FrameLayout.LayoutParams lp=(FrameLayout.LayoutParams)mainLayout.getLayoutParams();
lp.leftMargin // for left margin
lp.rightMargin // for right margin
Comme d'autres l'ont suggéré, layout_margin # est l'espace entre le # Edge du parent et votre vue.
Obtenir/établir des marges a fonctionné pour moi avec:
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mView.getLayoutParams();
params.topMargin += 20;
mView.requestLayout();
Bien sûr, ma vue était en effet un groupe de vues et le parent était également un groupe de vues. Dans la plupart des cas, vous devez convertir vos paramètres de présentation dans la classe View du parent de la classe View (dans ce cas, ViewGroup et RelativeLayout).