Я пытаюсь использовать 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);
Так что это прекрасно работает, но как же вы задаете поля кнопок, чтобы между ними было пространство? Я пытался использовать LinearLayout.MarginLayoutParams
, но это не имеет weight
члена, так что это не хорошо. И это не сработает, если вы передадите его lp
в конструктор.
Это невозможно? Потому что это выглядит так, и это будет не первая задача макета Android, которую вы можете выполнить только в XML.