Android: les marges sont définies dans un FrameLayout par programme - ne fonctionne pas
voici le code-
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) searchPin.getLayoutParams();
params.setMargins(135, 176, 0, 0);
//params.leftMargin = 135; //also not worked
//params.topMargin = 376;
searchPin.setLayoutParams(params);
Où jamais, de xml, de son travail-
android:layout_marginLeft="135dp"
quelle peut être la raison? ai-je raté quelque chose!
-thnx
OriginalL'auteur Avi C | 2011-11-12
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
OriginalL'auteur jdo59
J'ai eu un FrameLayout enfant d'un RelativeLayout de sorte que le cadre était en train de jeter FrameLayout params à RelativeLayout, j'ai résolu de cette façon
Le commentaire ci-dessus doit être accepté de répondre.
d'accord w/Roman Noir: C'est la solution qui a fonctionné pour moi. Vous devez définir les paramètres avec le type de la mère.
Peut-être que @sherpya n'a pas exprimer clairement, mais il a certainement fait un point.
FrameLayout.LayoutParams
n'est pas le même queViewGroup.LayoutParams
OriginalL'auteur sherpya
Je pense que ce qu'il vous manque, c'est que, lorsque vous définissez par programmation les paramètres d'un élément, ces paramètres sont fournis à la Vue parent, de sorte qu'il sait comment la position de l'élément. Les paramètres ne sont pas remis à l'élément lui-même. Considérons l'exemple de code suivant. Aussi, notez que les paramètres de mise en page sont du type de ceux de la société mère.
thnx homme, rembourrage travaillé avec des enfants de l'élément. réponse ajoutée.
non, vous n'avez pas à mettre du rembourrage pour l'enfant de l'élément, comme le rembourrage d'un parent. L'idée est plus comme, vous offre à la fois (élément enfant + enfant de l'élément de mise en page params) pour la maison - mère dans le addView ligne.
Ne fonctionne pas non plus, à l'aide de addView avec deux paramètres, ou de régler les paramètres de mise en page pour l'afficher directement les résultats dans le même
OriginalL'auteur hovanessyan
solution simple-
OriginalL'auteur Avi C
Vous pouvez essayer ce
OriginalL'auteur Roman Black
Suffit d'utiliser LayoutParams au lieu de FrameLayout.LayoutParams
cela a fonctionné pour moi
OriginalL'auteur stef