Comment définir la marge dynamiquement dans Android?

Je fais actuellement une application android qui contient une boîte de dialogue d'alerte personnaliser. Il contient un bouton , mais je ne peux pas définir la marge pour le bouton . le code est donné ci-dessous. la méthode setmargin ne fonctionne pas

AlertDialog.Builder myDialog = new AlertDialog.Builder(Login.this);
Button button = new Button(Login.this);

button.setText("Send");
LayoutParams buttonLayoutParams 
    = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

button.setLayoutParams(buttonLayoutParams);

resetPassword=editText.getText().toString();

LinearLayout layout = new LinearLayout(Login.this);
layout.setOrientation(LinearLayout.VERTICAL);
layout.addView(textView);
layout.addView(editText);
layout.addView(button);

myDialog.setView(layout);
26
demandé sur AndyN 2012-06-16 13:15:34

4 réponses

Écrivez le Code suivant pour définir la marge, cela peut vous aider.

AlertDialog.Builder myDialog = new AlertDialog.Builder(Login.this);
Button button = new Button(Login.this);
EditText editText = new EditText(Login.this);
TextView textView = new TextView(Login.this);
button.setText("Send");
LinearLayout.LayoutParams buttonLayoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
buttonLayoutParams.setMargins(50, 10, 0, 0);
button.setLayoutParams(buttonLayoutParams);
String resetPassword = editText.getText().toString();
LinearLayout layout = new LinearLayout(Login.this);
layout.setOrientation(LinearLayout.VERTICAL);
layout.addView(textView);
layout.addView(editText);
layout.addView(button);
myDialog.setView(layout);
myDialog.show();

Utilisez LinearLayout.LayoutParams ou RelativeLayout.LayoutParams selon la disposition parente de la vue enfant

49
répondu Dipak Keshariya 2016-02-02 08:56:18
buttonLayoutParams.bottomMargin
buttonLayoutParams.topMargin
buttonLayoutParams.leftMargin
buttonLayoutParams.rightMargin

Peut être utilisé pour définir des marges

3
répondu user1458071 2012-06-16 09:18:27

La méthode setMargin() est disponible si vous utilisez LinearLayout.LayoutParams mais pas si vous utilisez ViewGroup.LayoutParams. Dipak Keshariya fait allusion à cela mais ne le dit pas en tant que mots.

2
répondu Klepto 2014-05-08 16:49:58
You can set in LinearLayout margin

LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams layoutParams = new
LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 
LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(30, 20, 30, 0);
Button okButton=new Button(this);
okButton.setText("some text");
ll.addView(okButton, layoutParams);
1
répondu Ajay Keshri 2016-02-02 09:37:42