Android:以编程方式设置权重参数与我想要的相反

Fir*_*ras 7 java android android-layout android-layout-weight

我遇到了android的问题.我在Java中设置了Weight参数,但它正在完成我想要的对话.

这是代码

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);
Run Code Online (Sandbox Code Playgroud)

我在容器布局之间添加了一条黑线,重复了这个过程7次.通常情况下,我应该在lef上获得一个小的红色列,以及一个大的黑色列,但这是我得到的代码:

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

为什么它与代码完全相反?

谢谢你的帮助.

Dhe*_*ngh 11

当我们使用重量宽度应为零

尝试使用宽度0来容纳容器内的儿童.............

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



LinearLayout.LayoutParams p2 = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.WRAP_CONTENT);
Run Code Online (Sandbox Code Playgroud)