Próbuję użyć Java ( nie XML ) do utworzenia LinearLayout z przyciskami wypełniającymi ekran i posiadającymi marginesy. Oto kod, który działa bez marginesów:
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);
Więc to działa dobrze, ale jak, u licha, dajesz marginesy przyciskom, żeby między nimi była przestrzeń? Próbowałem użyć LinearLayout.MarginLayoutParams
, ale to nie ma weight
członka, więc nie jest dobrze. I to nie działa, jeśli przekażesz go również lp
do jego konstruktora.
Czy to jest niemożliwe? Ponieważ na pewno wygląda i nie byłoby to pierwsze zadanie układu Androida, które można wykonać tylko w języku XML.