2012-06-16 22 views
25

Actualmente estoy haciendo una aplicación de Android que contiene personalizar el cuadro de diálogo de alerta. Contiene un botón, pero no puedo establecer el margen para el botón. el código se da a continuación. setmargin método no está¿Cómo establecer el margen de forma dinámica en Android?

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); 

Respuesta

44

Escribir siguiente código para establecer Margen, puede ayudarle.

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(); 

Uso LinearLayout.LayoutParams o RelativeLayout.LayoutParams de acuerdo a la disposición de los padres del niño, vista

+0

no está funcionando. el botón está dentro de alertdialog – user1057197

+0

Por favor, vea mi respuesta editada, está trabajando para mí. –

+1

no, no funciona. muestra un error agregar conversión a buttonlayoutparams en el método setMargin. – user1057197

2
buttonLayoutParams.bottomMargin 
buttonLayoutParams.topMargin 
buttonLayoutParams.leftMargin 
buttonLayoutParams.rightMargin 

trabajando se puede utilizar para establecer los márgenes

+0

no funciona – user1057197

+1

¿Está configurando los parámetros de diseño para su 'LinearLayout'? – user1458071

2

El método setMargin() está disponible si está utilizando LinearLayout.LayoutParams pero no si está usando ViewGroup.LayoutParams. Dipak Keshariya alude a esto, pero no lo dice en muchas palabras.

0
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); 
Cuestiones relacionadas