Tengo que agregar más de un botón en LinearLayout. Pero quiero poner esos botones para decir 5px aparte. No pude encontrar una manera de establecer un margen de un botón. ¿Alguna idea?¿Cómo agregar margen a un botón en tiempo de ejecución?
Respuesta
Utilice la propiedad layout_margin del elemento de botón. ¿Eso no funciona?
<Button android:layout_margin="5px" (...)/>
Editar
Al crear un botón en Java, LayoutParams se utiliza para especificar los márgenes y así.
Button button = new Button();
(....)
params = new LinearLayout.LayoutParams();
params.leftMargin = 5;
(set params as you need)
parent.addView(button, params);
Los LayoutParams que utilice debe coincidir con el diseño que añadir el botón dentro (ver http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html). Para un LinearLayout, use un LinearLayout.LayoutParams y establezca los campos * Margen en consecuencia.
Agregar relleno a los botones también resolvería su problema. Mira esto http://developer.android.com/resources/tutorials/views/hello-formstuff.html#CustomButton
Gracias, pero el relleno agrega espacio dentro del área del botón, digamos espacio entre el borde y el texto del botón. –
intente esto: setGravity (int): \t Especifica cómo alinear el texto por el eje xy/o de la vista cuando el texto es más pequeño que la vista. – jsp
Prueba esto:
//Assuming your button is in a LinearLayout as stated
LinearLayout.LayoutParams params = myButton.getLayoutParams();
params.setMargins(0, 0, 0, 0) //left, top, right, bottom
myButton.setLayoutParams(params);
que también funciona, excepto que setLayoutParams es inútil. y getLayoutParams puede ser nulo. y ¿cómo sabes que es un LinearLayout.LayoutParams que tiene el botón? – njzk2
No estoy escribiendo un programa para pasar las pruebas aquí, es una idea general de lo que se requiere. Como dije en el comentario, supongo que su botón está en LinearLayout, como dijo en su publicación original. En este enlace: http://developer.android.com/reference/android/view/View.html#getLayoutParams(), se afirma que 'Cuando una Vista se adjunta a un Grupo de Vista padre, este método no debe devolver nulo' . Ergo, no será nulo en este caso. – kcoppock
@kcoppock, Gracias, creo que tiene razón en que no devolverá nulo, según su suposición de que está en LinearLayout. Pero, dado que el botón se agrega a ese diseño más tarde; en este caso, devuelve nulo. ¡Gracias a todos! –
MarginLayoutParams params = (MarginLayoutParams) vector8.getLayoutParams();
params.width = 200; params.leftMargin = 100; params.topMargin = 200;
vector8.setLayoutParams(params);
uso de la necesidad tipo de: MarginLayoutParams
esto es útil para mí –
uso de este código para establecer el margen en tiempo de ejecución
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) btnContainer.getLayoutParams();
params.setMargins(5, 50, 10, 0); //left, top, right, bottom
view_whwre_set_margin.setLayoutParams(params);
- 1. ¿Cómo agregar un control de botón a una vista xml de Android en tiempo de ejecución?
- 2. Agregar imagen en tiempo de ejecución
- 3. Agregar miembros a un objeto dinámico en tiempo de ejecución
- 4. Agregar margen a DataGridTextColumn
- 5. Cómo agregar un UIButton en tiempo de ejecución
- 6. Agregar elementos a RibbonDropDown en tiempo de ejecución
- 7. Agregar margen izquierdo a UITextField
- 8. Cómo agrego componentes a un JPanel en tiempo de ejecución
- 9. Agregar archivos a Java classpath en el tiempo de ejecución
- 10. ¿Cómo usar layoutinflator para agregar vistas en tiempo de ejecución?
- 11. ¿Cómo agregar un botón a UINavigationBar?
- 12. Cómo agregar eventos a los controles creados en tiempo de ejecución en Excel con VBA
- 13. encargo Android margen botón
- 14. Agregar un botón a MediaController
- 15. ¿Cómo agregar una vista dinámica a un elemento ListView en tiempo de ejecución?
- 16. C#: ¿Cómo agregar atributos a un objeto en tiempo de ejecución?
- 17. ¿Cómo puedo agregar propiedades a un objeto en tiempo de ejecución?
- 18. La mejor práctica para agregar controles en tiempo de ejecución
- 19. ¿Cómo me deshago del margen adicional alrededor de un botón?
- 20. Configuración del margen del botón mediante programación
- 21. Agregar funciones en gdb en tiempo de ejecución
- 22. ¿Se puede agregar un directorio a la ruta de clase en tiempo de ejecución?
- 23. ¿Es posible agregar ruta en tiempo de ejecución en MVC3?
- 24. Agregar DLL mediante programación en el tiempo de ejecución
- 25. Agregar imagen al informe de Crystal En tiempo de ejecución
- 26. ¿Cómo puedo agregar métodos a una clase en tiempo de ejecución en Smalltalk?
- 27. Botón Agregar a UITableViewCell
- 28. Agregar un botón a WGD DataGrid
- 29. Agregar un botón Actualizar a jQuery Datatable
- 30. Agregar clases de entidad dinámicamente en tiempo de ejecución
Soy nuevo ¡Androide! Estoy confundido, si lo tengo en XML, entonces ¿cómo puedo usar mientras está creando dinámicamente? Mi código es así, btnSend = new Button (this); btnSend.setText ("Enviar ..."); btnSend.setBackgroundResource (R.drawable.red_button); btnSend.setOnClickListener (nueva View.OnClickListener() { \t \t \t \t \t \t public void onClick (Ver v) { \t \t \t \t // método generada automáticamente TODO código auxiliar \t \t \t \t \t \t \t \t // Código aquí ... \t \t \t \t \t \t \t} \t \t}); –
Edito mi publicación con información sobre la creación dinámica de botones – njzk2
Muchas gracias por su ayuda. Lo siento que ¡No hace lo que yo quiero! Say, LinearLayout.LayoutParams lParam = new LinearLayout.LayoutParams ( \t \t LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.RESUMIR CONTENIDO); lParam.setMargins (20, 20, 20, 20); Agrega margen a LinearLayout. No al botón. Por ejemplo, hay 2 botones, uno al lado del otro, no * * agrega espacio entre los botones. ¿Cuál es mi objetivo? Gracias! –