Stellen Sie die Ränder in einem LinearLayout programmgesteuert ein

Ich versuche Java zu benutzen (nicht XML), um ein LinearLayout mit Schaltflächen zu erstellen, die den Bildschirm ausfüllen und Ränder haben. Hier ist Code, der ohne Ränder funktioniert:

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);

Das funktioniert also gut, aber wie um alles in der Welt geben Sie den Knöpfen Ränder, damit zwischen ihnen Platz ist? Ich habe versucht mitLinearLayout.MarginLayoutParams, aber das hat neinweight Mitglied so ist es nicht gut. Und es funktioniert nicht, wenn Sie es bestehenlp entweder in seinem Konstruktor.

Ist das unmöglich? Weil es so aussieht und es nicht die erste Android-Layout-Aufgabe ist, die Sie nur in XML ausführen können.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage