2012-06-23 9 views
7

ho un problema con Android. Sto impostando il parametro Weight in Java, ma sta facendo esattamente il contrario di quello che voglio.Android: l'impostazione del parametro Peso a livello di programmazione fa l'opposto di quello che voglio

Ecco il codice

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

Ripeto questo processo 7 volte con l'aggiunta di una linea nera tra il layout del contenitore. Normalmente dovrei ottenere una piccola colonna rossa sul LEF, e un grande uno nero, ma ecco cosa ottengo con questo codice:

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

perché lo fa facendo esattamente l'opposto del codice?

Grazie per il vostro aiuto ragazzi.

+0

cosa stai cercando di realizzare? per lo più nero con solo un po 'di rosso? Se è così basta cambiare i valori di peso, hai il contrario. – FoamyGuy

+0

prova con larghezza 0 per bambini –

+1

@DheereshSingh Ottimo! ha funzionato con larghezza 0 per i bambini. Molte grazie! :) – Firas

risposta

11

Quando usiamo la larghezza di peso dovrebbe essere zero

provare con la larghezza 0 per i bambini con all'interno del contenitore .............

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



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

Grazie, ha funzionato molto bene! – Firas

+0

Sempre benvenuti ...... :) –

1

Si sta impostando entrambe le larghezze per "wrap_content" ... quando si usano i pesi si dovrebbe impostare l'orientamento interessato su "0dp" (o è equivalente a livello di programmazione).

+0

Sì, ha funzionato impostando la larghezza dei bambini su 0 dpi. Grazie! – Firas

+0

Anche questo mi stava uccidendo. Ma la cosa strana è perché è l'esatto opposto quando si usa WRAP_CONTENT? –

Problemi correlati