2012-06-23 5 views
7

android에 문제가 있습니다. Java에서 Weight 매개 변수를 설정하고 있지만 정확히 내가 원하는 것의 oposite를 처리하고 있습니다.Android : 프로그래밍 방식으로 Weight 매개 변수를 설정하면 내가 원하는 것과 반대가됩니다.

는 여기에 내가 컨테이너 레이아웃 사이에 검은 선을 추가로이 과정을 7 번 반복 코드

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

입니다. 는 일반적으로 나는 LEF에 작은 빨간색 열, 큰 검은 하나를 얻을해야하지만, 여기에이 코드로 무엇을 얻을 :

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

은 왜 코드의 정확히 반대를하고 있습니까?

도움 주셔서 감사합니다.

+0

성취하려는 것은 무엇입니까? 대부분은 검은 색이고 약간은 적색입니까? 무게 값을 전환하면 뒤로 물러납니다. – FoamyGuy

+0

아이들과 함께 0으로 시도하십시오 –

+1

@DeereshSingh 위대한 분! 그것은 아이들을 위해 너비 0으로 작업했습니다. 고마워요! :) – Firas

답변

11

우리는 무게 폭이 ............. 용기 내부의 아이에 대한 폭 0 당신은 설정하는

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



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

고마워, 잘 했어! – Firas

+0

항상 환영합니다 ...... :) –

1

을 시도 제로

해야 사용할 때 wrap_content "두 개의 너비 ... 가중치를 사용할 때 영향을받은 방향을"0dp "(또는 이에 상응하는 프로그램 적)로 설정해야합니다.

+0

네, 아이들의 너비를 0dp로 설정했습니다. 감사! – Firas

+0

이것은 나를 너무 죽이고 있었다. 그러나 이상한 점은 WRAP_CONTENT를 사용할 때 정확히 반대되는 이유는 무엇입니까? –