Установить поля в LinearLayout программно

Я пытаюсь использовать 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.

Ответы на вопрос(10)

Ваш ответ на вопрос