Android线性布局权重编程

32

我想通过程序将三个线性布局添加到一个活动中,每个布局的宽度相同。问题是我无法在程序中设置这些布局的权重。我可以在xml中完成这个操作,但我希望通过编程来实现。 以下就是我的需求: 输入图像描述

4个回答

61

这里是解决方案

    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, 100);
    lp.weight = 1;

查看完整解决方案

LinearLayout ll1, ll2, ll3;
    /* Find these LinearLayout by ID 
     i.e ll1=(LinearLayout)findViewById(R.id.ll1);
     */

    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, 100);
    lp.weight = 1;
    ll1.setLayoutParams(lp);
    ll2.setLayoutParams(lp);
    ll3.setLayoutParams(lp);

1
运行得非常好,感谢您的快速响应。但是我不得不进行一些修改,如下所示>> LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT); lp.weight = 1; - Shahbaz Pothiawala

7

当设置子视图的布局参数时,可以使用new LinearLayout.LayoutParams(int width, int height, float weight)来设置权重。


4

按照以下步骤操作...

protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    txtNote = (LinedEditText) findViewById(R.id.txtNote);
    lnr = (LinearLayout) findViewById(R.id.lnr);
    LinearLayout l1 = new LinearLayout(this);
    LinearLayout l2 = new LinearLayout(this);
    LinearLayout l3 = new LinearLayout(this);
    l1.setBackgroundResource(android.R.color.holo_green_light);
    l2.setBackgroundResource(android.R.color.holo_orange_dark);
    l3.setBackgroundResource(android.R.color.holo_blue_bright);

    LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT, 1);
    lnr.addView(l1, param);
    lnr.addView(l2, param);
    lnr.addView(l3, param);

}

4

您可以通过为每个线性布局设置布局权重属性来实现,将其传递给LinearLayout - LayoutParams构造函数:

LinearLayout.LayoutParams param = new LinearLayout.LayoutParam(
                         LayoutParams.MATCH_PARENT,
                         LayoutParams.MATCH_PARENT, 1);

或者
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
                         0,
                         LayoutParams.MATCH_PARENT, 1);

希望能对你有所帮助!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接