我正尝试使用Java(而不是XML)创建带有填充屏幕并具有页边距的按钮的LinearLayout。下面是代码,没有利润的工作:以编程方式在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);
使作品很好,但如何在地球上你给的按钮利润率所以他们之间的空间?我尝试使用LinearLayout.MarginLayoutParams
,但没有weight
成员,所以它不好。如果您在其构造函数中传递lp
,它也不起作用。
这是不可能的吗?因为它看起来确实如此,并且它不会是您只能在XML中执行的第一个Android布局任务。
http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html#setMargins(int,INT,INT,INT)代替layoutParams.setMargins(30, 20,30,0);你把layoutParams.setMargins(30dp,20dp,30dp,0dp); – DarthestVader 2012-01-09 17:40:30
setMargins以int作为参数..您只能使用xml attributtes – jyavenard 2012-02-01 08:05:56