以编程方式设置LinearLayout中的边距

问题:

我试图使用Java(not XML)创建一个带有填充屏幕的按钮并具有边距的LinearLayout。这里是没有边距的代码:

LinearLayout buttonsView = new LinearLayout(this);
buttonsView.setOrientation(LinearLayout.VERTICAL);
for (int r = 0; r < 6; ++r) {
    Button btn = new Button(this);
    btn.setText("A");

    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT); // Verbose!
    lp.weight = 1.0f; // This is critical. Doesn't work without it.
    buttonsView.addView(btn, lp);
}

ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
setContentView(buttonsView, lp);
&#91;/code&#93;
所以这样工作正常,但是你如何给按钮边缘,所以它们之间有空间?我尝试使用<code>LinearLayout.MarginLayoutParams</code>,但是没有<code>weight</code>成员,所以没有任何好处。如果您在其构造函数中传递<code>lp</code>也不起作用。
这是不可能的吗因为它确实看起来,它不会是您只能在XML中执行的第一个Android布局任务。

<h4>回答:</h4>
这是一个完成它的小代码:

LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
     LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);

layoutParams.setMargins(30, 20, 30, 0);

Button okButton=new Button(this);
okButton.setText("some text");
ll.addView(okButton, layoutParams);

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Set margins in a LinearLayout programmatically

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

25 − 15 =