Marges sur gridLayout

Résolu/Fermé
lamouchetsetse Messages postés 112 Date d'inscription samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 - 7 juil. 2021 à 21:47
lamouchetsetse Messages postés 112 Date d'inscription samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 - 9 juil. 2021 à 08:10
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

BunoCS Messages postés 15342 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 26 janvier 2023 3 877
8 juil. 2021 à 09:28
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);


1
lamouchetsetse Messages postés 112 Date d'inscription samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 2
Modifié le 9 juil. 2021 à 08:14
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.
0