2011-12-20 18 views
5

Estoy intentando crear un FrameLayout programación de la siguiente manera (este punto de vista flotará en el centro de la parte inferior de un LinearLayout):FrameLayout layout_weight programación

FrameLayout bottomFrameLayout = new FrameLayout(context); 
    bottomFrameLayout.setLayoutParams(new FrameLayout.LayoutParams(0,LayoutParams.FILL_PARENT,Gravity.CENTER | Gravity.BOTTOM)); 

desde que puse layout_width=0dp, me gustaría establecer también layout_weight para controlar el ancho. ¿Cómo puedo hacer eso?

Respuesta

16

Es necesario utilizar LinearLayout.LayoutParams (int width, int height, float weight) constructor desde FrameLayout es hijo de LinearLayout por lo tanto, va a configurar parametros para niño en LinearLayout.

Editar:

FrameLayout bottomFrameLayout = new FrameLayout(context); 
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0,LayoutParams.FILL_PARENT,mWeight); 
lp.gravity = Gravity.CENTER | Gravity.BOTTOM; 
bottomFrameLayout.setLayoutParams(lp); 
+0

si uso LinearLayout.LayoutParams para establecer el peso ¿Cómo puedo configurar la gravedad? – prostock

+0

Intente asignar valor al campo 'gravity', como' layoutParamsObject.gravity = Gravity.SOME_OF_THE_CONSTANTS' –

+3

@NikolaDespotoski FrameLayout no es un elemento secundario de LinearLayout según la referencia, consulte http://developer.android.com/reference/android/ widget/FrameLayout.html y FrameLayout.LayoutParams no es un elemento secundario de LinearLayout.LayoutParams, vea http://developer.android.com/reference/android/widget/FrameLayout.LayoutParams.html. ¿Tu respuesta está desactualizada? – soriak

Cuestiones relacionadas