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

Java Android:以编程方式设置权重参数与我想要的正好相反,java,android,android-layout,android-layout-weight,Java,Android,Android Layout,Android Layout Weight,我的安卓系统有问题。 我在Java中设置权重参数,但它正是我想要的 这是密码 LinearLayout container = new LinearLayout(context); // some code ... container.setWeightSum(1f); View v1 = new View(context); v1.setBackgroundColor(Color.parseColor("#ff0000")); LinearLayout.LayoutParams p1 = n

我的安卓系统有问题。 我在Java中设置权重参数,但它正是我想要的

这是密码

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);
我重复这个过程7次,在容器布局之间添加一条黑线。 通常我应该在左上角有一个小的红色列,还有一个大的黑色列,但下面是我用这段代码得到的:


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

当我们使用权重宽度时,它应该是零


尝试将宽度0用于容器内的子对象

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



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

您正在将两个宽度都设置为“包裹内容”。。。使用权重时,应将受影响的方向设置为“0dp”(或编程等效方向)。

您想实现什么?大部分是黑色,只有一点红色?如果是这样的话,只需切换您的权重值,您就拥有了向后的宽度。尝试使用宽度0表示children@DheereshSingh伟大的它对儿童的宽度为0。非常感谢!:)这也让我很痛苦。但奇怪的是,为什么使用WRAP_内容时正好相反?