2012-06-23 15 views
7

Tengo un problema con Android. Estoy configurando el parámetro Weight en Java, pero está haciendo exactamente lo contrario de lo que quiero.Android: Establecer el parámetro de Peso programáticamente hace lo contrario de lo que quiero

Aquí está el código

LinearLayout container = new LinearLayout(context); 
// some code ... 
container.setWeightSum(1f); 

View v1 = new View(context); 
v1.setBackgroundColor(Color.parseColor("#ff0000")); 
LinearLayout.LayoutParams p1 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT); 
p1.weight=0.1f; 

View v2 = new View(context); 
v2.setBackgroundColor(Color.parseColor("#000000")); 
LinearLayout.LayoutParams p2 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT); 
p2.weight=0.9f; 

container.addView(v1,p1); 
container.addView(v2,p2); 

repito este proceso 7 veces con la adición de una línea de negro entre el diseño del envase. Normalmente que debería obtener una pequeña columna de color rojo en la LEF, y uno grande negro, pero esto es lo que me sale con este código:

http://i.stack.imgur.com/PPgoy.png

¿Por qué hacer exactamente lo contrario del código?

Gracias por su ayuda chicos.

+0

¿Qué estás tratando de lograr? mayormente negro con solo un poco de rojo? Si es así, simplemente cambie sus valores de peso, tiene el retroceso. – FoamyGuy

+0

prueba con ancho 0 para con niños –

+1

@DheereshSingh ¡Genial! funcionó con ancho 0 para niños. ¡Muchas gracias! :) – Firas

Respuesta

11

Cuando usamos el ancho de peso debe ser cero

tratar con un ancho de 0 a favor de los niños con el interior del contenedor .............

LinearLayout.LayoutParams p1 = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.WRAP_CONTENT); 



LinearLayout.LayoutParams p2 = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.WRAP_CONTENT); 
+1

¡Gracias, funcionó muy bien! – Firas

+0

Siempre bienvenido ...... :) –

1

Usted está configurando ambos anchos para "wrap_content" ... al usar pesos, debe establecer la orientación afectada en "0dp" (o su equivalente en el programa).

+0

Sí, funcionó con la configuración del ancho de los niños a 0dp. ¡Gracias! – Firas

+0

Esto también me estaba matando. Pero lo extraño es por qué es exactamente lo contrario cuando se usa WRAP_CONTENT? –

Cuestiones relacionadas