我正在尝试使用Java(而不是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);
Run Code Online (Sandbox Code Playgroud)
这样工作正常,但你怎么给按钮边距,所以它们之间有空间?我尝试过使用LinearLayout.MarginLayoutParams,但是没有weight成员,所以没有用.如果你lp在它的构造函数中传递它也不起作用.
这不可能吗?因为它确实看起来,并且它不会是第一个Android布局任务,你只能用XML做.
我需要在我的.java活动类中创建一个GUI(布局+视图)(我知道它更灵活,更易于使用.xml布局文件,但我现在不想使用它).
我找不到任何setGravity()(但是一个"Gravity"对象,我无法想象如何使用)或任何set setMargin()方法的"View"对象.
最简单的方法是什么?
感谢名单.