将另一个视图左侧的视图放置在RelativeLayout中并不起作用

时间:2014-11-24 15:49:06

标签: android android-layout alignment

我正在向RelativeLayout添加视图。所有这些都是按程序创建和添加的,因此涉及XML的解决方案对我来说是不可能的。

父视图宽300像素。添加的视图(A和B)各15px宽。首先,我添加了View A.

RelativeLayout.LayoutParams lpA
    = new RelativeLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
lpA.leftMargin = 150;
parent.addView(A, lpA);

这将从父母的左边缘放置A 150px。工作良好。但后来我尝试添加View B.

RelativeLayout.LayoutParams lpB
    = new RelativeLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
lpB.addRule(RelativeLayout.LEFT_OF, A.getId());
lpB.leftMargin = 0;
lpB.rightMargin = 0;
parent.addView(B, lpB)

现在我期待B显示在A的左边,两者之间没有间隙。相反,B只是消失了。将lpB.rightMargin设置为至少为1的任意值时,左侧显示B,就像在父左边缘对齐一样。
为什么会这样?将规则从LEFT_OF更改为RIGHT_OF时,显示B正如预期的那样粘在A的右侧。

0 个答案:

没有答案