LayoutParams重力不起作用

我有一个父MATCH_PARENT的LinearLayout的宽度和高度。我试图找出设置重力和layout_gravity与Java代码。

LinearLayout l=new LinearLayout(this);
l.setGravity(Gravity.CENTER);
LinearLayout.LayoutParams ll=new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
l.setLayoutParams(ll);
l.setOrientation(LinearLayout.VERTICAL);

现在我使用下面的代码为它添加一个Button:

LayoutParams llb=new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
llb.gravity=Gravity.RIGHT;
b.setLayoutParams(llb);

现在,如果我将此按钮添加到LinearLayout l并使其成为内容视图

l.addView(b);
setContentView(l);

所有事情都正常工作。 该按钮显示在中心和右侧。

但是,如果我将这个Button嵌入到LinearLayout中,然后将此LinearLayout添加到外部Layout,如下所示

LinearLayout l2=new LinearLayout(this);
        l2.setOrientation(LinearLayout.HORIZONTAL);
        LinearLayout.LayoutParams ll2=new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
        l2.setLayoutParams(ll2);
        l2.addView(b);

//将此添加到主布局。按钮具有与上面相同的LayoutParams。

l.addView(l2);
            setContentView(l);

按钮总是出现在左侧和这个

  llb.gravity=Gravity.RIGHT;

似乎没有工作。

请更新为什么这不起作用。

谢谢

链接地址: http://www.djcxy.com/p/93277.html

上一篇: LayoutParams gravity not working

下一篇: setting LayoutParams programmatically