Ich versuche, Java ( nicht XML ) zu verwenden, 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 Schaltflächen Ränder, damit zwischen ihnen Platz ist? Ich habe es versucht LinearLayout.MarginLayoutParams
, aber das hat kein weight
Mitglied, also ist es nicht gut. Und es funktioniert auch nicht, wenn Sie es lp
in seinem Konstruktor übergeben.
Ist das unmöglich Weil es sicher so aussieht und es nicht die erste Android-Layoutaufgabe wäre, die Sie nur in XML ausführen können.