2012-06-08 42 views
11

Tôi có nhóm radiogroup trong xml và các nút được tạo theo chương trình. Làm cách nào để thêm khoảng cách giữa các nút theo lập trình.thêm đệm android giữa các nút radiogroup theo lập trình

Tôi nghĩ đó là một cái gì đó như LayoutParams nhưng đối tượng của tôi không đi kèm với phương thức rõ ràng là setPadding hoặc setMargins.

Đây là những gì tôi đã cố gắng

RadioButton currentButton = new RadioButton(context); 
      currentButton.setText(item.getLabel()); 
      currentButton.setTextColor(Color.BLACK); 

      //add padding between buttons 
      LayoutParams params = new LayoutParams(context, null); 
      params. ... ?????? 
      currentButton.setLayoutParams(params); 

Trả lời

19

Padding

Bình thường LayoutParams không có phương pháp để áp dụng đệm, nhưng quan điểm làm. Kể từ khi một RadioButton là một lớp con của xem, bạn có thể sử dụng View.setPadding(), ví dụ như thế này:

currentButton.setPadding(0, 10, 0, 10); 

này cho biết thêm 10px đệm ở phía trên và 10px ở phía dưới. Nếu bạn muốn sử dụng các đơn vị khác bên cạnh px (ví dụ: dp), bạn có thể sử dụng TypedValue.applyDimension() để chuyển đổi chúng thành pixel trước tiên.

Margins

Margins được áp dụng cho một số lớp LayoutParams cụ thể mà lớp con MarginLayoutParams. Đảm bảo sử dụng một lớp con cụ thể khi đặt lề, ví dụ: RadioGroup.LayoutParams thay vì ViewGroup.LayoutParams chung (khi bố cục gốc của bạn là RadioGroup). Sau đó, bạn có thể chỉ cần sử dụng MarginLayoutParams.setMargins().

mẫu:

RadioGroup.LayoutParams params 
      = new RadioGroup.LayoutParams(context, null); 
params.setMargins(10, 0, 10, 0); 
currentButton.setLayoutParams(params); 
+4

Hi. Tôi đã thử mã lề ở trên và nó không hoạt động. Các nút đơn giản ở bên cạnh nút khác. – Taras

+0

Tôi nghĩ rằng giá trị padding mặc định là khoảng 10, vì vậy khi bạn cho 10 padding bạn sẽ không nhận thấy nó, hãy thử một số giá trị lớn hơn như 40 và bạn sẽ thấy nó hoạt động. –

Các vấn đề liên quan