Tôi đang cố gắng sử dụng Java ( không phải XML ) để tạo một linearLayout với các nút lấp đầy màn hình và có lề. Đây là mã hoạt động mà không có lề:
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);
Vì vậy, nó hoạt động tốt, nhưng làm thế nào trên trái đất bạn cung cấp cho các nút lề để có không gian giữa chúng? Tôi đã thử sử dụng LinearLayout.MarginLayoutParams
, nhưng nó không có weight
thành viên nên không tốt. Và nó cũng không hoạt động nếu bạn vượt qua nó lp
trong hàm tạo của nó.
Điều này là không thể? Bởi vì nó chắc chắn trông nó và nó sẽ không phải là nhiệm vụ bố trí Android đầu tiên bạn chỉ có thể làm trong XML.