2012-06-23 9 views
7

Mam problem z Androidem. Ustawiam parametr wagi w Javie, ale robi dokładnie to, co chcę.Android: Programowo ustawiając parametr Waga robi się przeciwnie do tego, co chcę

Oto kod

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

ja powtórzyć ten proces 7 razy z dodawaniem czarną linię pomiędzy układem pojemnika. Normalnie powinien dostać małe czerwone kolumny na LEF i dużą czarną jeden, ale oto co się z tym kodem:

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

Dlaczego to robi dokładnie odwrotnie kodu?

Dzięki za pomoc dla facetów.

+0

co próbujesz osiągnąć? przeważnie czarny z niewielką czerwienią? Jeśli tak, po prostu przełącz swoje wartości masy, masz do tyłu. – FoamyGuy

+0

spróbuj z szerokością 0 dla dzieci –

+1

@DheereshSingh Great! zadziałało z szerokością 0 dla dzieci. Wielkie dzięki! :) – Firas

Odpowiedz

11

Gdy używamy szerokość waga powinna wynosić zero

starać o szerokości 0 dla dzieci z wewnątrz pojemnika .............

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



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

Dziękuję, działało bardzo dobrze! – Firas

+0

Zawsze mile widziane ...... :) –

1

ustawiania obie szerokości do "wrap_content" ... przy stosowaniu odważników należy ustawić orientację, której dotyczy problem, na "0dp" (lub jej odpowiednik programowy).

+0

Tak, zadziałało to przy ustawianiu szerokości dzieci na 0 dp. Dzięki! – Firas

+0

To też mnie zabiło. Ale dziwne jest to, dlaczego jest dokładnie odwrotnie, gdy używasz WRAP_CONTENT? –