J'ai le code suivant pour générer des objets de bouton avec un texte défini, onclick commande (plus ou moins), hauteur, largeur et margins avec cette méthode pour obtenir le DP p> mais lorsque j'exécute l'application, le bouton dispose de la hauteur et de la largeur appropriées, ainsi que du texte approprié et onlick action, mais ils n'ont pas de marges, elles sont toutes groupées, elles sont toutes groupées dans un coin p> la vue Hierchy selon l'inspecteur de layouche dans Android Studio va P> DecorView
LinearLayout
FrameLayout
FitWindowLinearLayout
ContentFrameLayout
CoordinatorLayout
ViewPager
ConstraintLayout
ConstraintLayout
Buttons
3 Réponses :
public void setMargins (int left, int top, int right, int bottom) This is the signature for setMargins method. You call the method with right = 0 and bottom = 0. So you will not have the margins on right and bottom. Try to set some values for right and bottom.
Nope, et je n'ai jamais eu à régler des marges sur les 4 côtés, typiquement juste le dessus et le côté gauche. Même dans l'éditeur de mise en page WYSIWYG, vous pouvez simplement définir la marge de 2, même un côté, et Android montrera toujours correctement la ou les marges.
Pour les vues qui sont des enfants de contrainteTlayout, vous devez ajouter des contraintes horizontales et verticales. Sinon, ils ne sauront pas comment les placer et les placeront dans le coin supérieur gauche. P>
Vous pouvez utiliser le contraintlayout.layoutparams et définir les contraintes par p>
Ainsi, par exemple, si vous souhaitez placer ces boutons l'une après l'autre verticalement, vous contraindrez chaque bouton horizontalement au parent et verticalement au bouton précédent. P> lp.lefttoleft code>,
lp.lefttolight code> et des méthodes similaires ici p>
En ce moment, cela fonctionne (je dis en ce moment parce que tout ce que je sais, ce sont les boutons ne sont pas groupés, ils sont en fait je pense où ils devraient être) alors merci de vous remercier
Génial! Je vous recommanderai également d'explorer les contraintes de contrainte dans l'onglet Conception de la mise en page, car elles peuvent être un peu difficiles à visualiser parfois.
Vous devez utiliser layoutParams pour définir les marges de vos boutons: ` en fonction de la mise en page que vous utilisez, vous devez utiliser RelatelayOut.layoutParams ou linearlayout.layoutparams. P> Et pour convertir votre mesure DP en pixel, essayez ceci: p> Resources r = mContext.getResources();
int px = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,
yourdpmeasure,
r.getDisplayMetrics()
);
Pouvez-vous partager le code où vous ajoutez les vues générées à votre hiérarchie?
@basilisk
((ContrainteLayout) root.findviewyID (r.id.constraintArtLayout)) .Adddview (GenerateBut Ton ("On", 'A', 50 100, 16,8); Code > Comme je l'ai dit, j'ai essayé d'utiliser contraintelayout.layoutparams et il n'y a toujours pas de marge
setmargins code> utilise des pixels