Marges sur gridLayout

[Résolu]
Signaler
Messages postés
103
Date d'inscription
samedi 2 août 2014
Statut
Membre
Dernière intervention
27 juillet 2021
-
Messages postés
103
Date d'inscription
samedi 2 août 2014
Statut
Membre
Dernière intervention
27 juillet 2021
-
Bonjour à tous,

Est ce que quelqu'un saurait comment définir des marges sur un GridLayout programmatiquement parlant.

au départ, je pensait faire comme ça:

GridLayout.LayoutParams gridParam = new GridLayout.LayoutParams(GridLayout.LayoutParams.WRAP_CONTENT, GridLayout.LayoutParams.WRAP_CONTENT);

gridParam.setMargin(0,0,200,0)


Mais ça ne fonctionne pas pour les GridLayout.

Du coup j'ai tenté de faire cela:

GridLayout.LayoutParams gridParam = new GridLayout.LayoutParams();
gridParam.width = GridLayout.LayoutParams.WRAP_CONTENT;
gridParam.height = GridLayout.LayoutParams.WRAP_CONTENT;
gridParam.rightMargin = 200;

maVue.addView(monGrid, gridParam)


Mais c'est pas bon non plus, mon GridLayout ne ressemble plus à rien.
Configuration: Linux / Firefox 89.0

2 réponses

Messages postés
15113
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
4 août 2021
3 521
Hello,

Tu veux rajouter une marge autour du GridLayout c'est bien ça ?
La subtilité est qu'il faut utiliser les params du Layout parent et non du gridLayout. Par exemple, si le composant parent est un FrameLayout :
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout
            .LayoutParams.WRAP_CONTENT);
layoutParams.rightMargin = 200;
gridParam.setLayoutParams(layoutParams);


Messages postés
103
Date d'inscription
samedi 2 août 2014
Statut
Membre
Dernière intervention
27 juillet 2021
2
Merci beaucoup Bruno, pour ceux qui passerait par la, voici ce que j'ai fait et qui fonctionne:

FrameLayout.LayoutParams gridParam = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT);
gridParam.rightMargin = 200;
gridParam.setLayoutParams(layoutParams);
monGridLayout.setLayoutParams(gridParam);
maVue.addView(monGridLayout)


j'ajoute que c'est également de cette façon qu'il faut s'y prendre pour les TextView.
encore merci.