在代码而不是xml问题中设置LinearLayout权重

时间:2011-01-10 16:17:38

标签: java android android-linearlayout

我有以下代码尝试将linearLayout的权重设置为0.7,在查看文档和在线的一些示例后,它说它需要3个参数,但在我的代码中它不会让我:

LinearLayout linear = new LinearLayout(this); 
linear.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

所以这里它设置了高度和宽度,但它在文档中说的最后一个参数是重量,它不会让我把它放在那里。

3 个答案:

答案 0 :(得分:2)

尝试使用linearlayout的layoutparams:

linear.setLayoutParams(
        new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,   
                                      LayoutParams.WRAP_CONTENT,
                                      1)
);

作为一个概念验证:这是有效的。检查导入并将其与您自己的进行比较:)

file:Test.java

package com.huiges.stackOverFlow.examples

import android.app.Activity;
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;

public class Test extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);  
        LinearLayout linear = new LinearLayout(this); 
        linear.setLayoutParams(
                new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,   
                                              LayoutParams.WRAP_CONTENT,
                                              1)
        );


    }

}

答案 1 :(得分:0)

使用LinearLayout.LayoutParams

LinearLayout linear = new LinearLayout(this); 
linear.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT,1));

答案 2 :(得分:0)

最后一个参数采用浮点数。 0.7是双精度型,而是使用0.7f代替浮点数。

linear.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                                        LayoutParams.WRAP_CONTENT, 
                                        0.7f));