2011-11-02 21 views
7

Soy nuevo en Android y me he quedado atrapado en un problema muy básico. Estoy trabajando en una aplicación en la que necesito deslizar imágenes en fling. En cada imagen tengo que agregar botones dinámicamente. Estoy agregando botones utilizando AddContentView() para agregar botones. Todo funciona bien, pero quiero establecer la posición de los botones de forma dinámica. He leído en muchos lugares, todos están usando addView() para agregar botones y establecer sus posiciones. He intentado estoConfiguración del margen del botón mediante programación

pero no funciona. ¿Puede alguien decirme cómo establecer los márgenes (posición) del botón usando addContentView()? Cualquier ayuda sería muy apreciada.

Respuesta

10

Configurar un margen de botones usando addView funciona para mí. Asegúrese de pasar el objeto LayoutParams derecho al ViewGroup que debería contener su botón.

FrameLayout fl = new FrameLayout(context); 
Button b = new Button(context); 
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(width, height); 
params.setMargins(top, left, bottom, right); 
fl.addView(b,params); 

debería funcionar.

+1

Gracias por la respuesta rápida. Estoy usando addContentView() porque quiero agregar un botón en la parte superior de las imágenes sin ocupar ningún lugar del área de la imagen. He intentado su solución pero especificando parámetros como este en addContentView() hasn ' funcionó para mí. Estoy usando el siguiente código Botón b = botón nuevo (esto); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams (50,50); params.setMargins (100,300,30,10); addContentView (b, params); cambiar los valores en setMargins() no tiene efecto. Realmente lo siento, puedo estar cometiendo un error básico, por favor, ayúdenme – user1022105

+0

¿Han probado addView en lugar de addContentView, también? Nunca he usado addContentView y, por lo tanto, no puedo decir si puede funcionar. Pero estoy trabajando en un proyecto donde uso setMargings con addView como en mi ejemplo. Funciona muy bien para mí. Entonces, o prueba addView y funciona o quizás el error está en otro lugar. –

+0

Creo que ha olvidado "fl.setLayoutParams (params);" – johann

Cuestiones relacionadas