安卓:编程设置权重参数做的,我想的正好相反(Android: Setting the Weight

2019-07-30 02:45发布

我在与Android的一个问题。 我设置在Java中的权重参数,但它做的正是我想要的oposite。

下面的代码

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次添加容器布局之间的黑线。 通常情况下,我应该得到来氟米特一个红色的小柱,和大黑一个,但这里是我得到这个代码:

为什么它做的正是代码的对立面?

Answer 1:

当我们使用重量宽度应该是零

宽度为0尝试与容器内的儿童.............

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



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


Answer 2:

您同时设置宽度为“WRAP_CONTENT” ......使用权的时候,你应该设置影响定向“0dp”(或者是程序上的等价物)。



文章来源: Android: Setting the Weight parameter programmatically does the opposite of what i want