2012-06-08 16 views
11

Ho un gruppo di radiogrammi in xml ei pulsanti sono generati a livello di codice. Come aggiungo la spaziatura tra i pulsanti a livello di programmazione.Android aggiunge padding tra i pulsanti del radiogroup al livello di programmazione

Ho pensato che fosse qualcosa come LayoutParams ma il mio oggetto non viene fornito con un ovvio metodo setPadding o setMargins.

questo è quello che cercavo

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

risposta

19

Imbottitura

normali LayoutParams non hanno metodi per applicare imbottiture, ma viste faccio. Dal momento che un RadioButton è una sottoclasse di vista, è possibile utilizzare View.setPadding(), per esempio come questo:

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

Questo aggiunge 10px padding in alto e in basso 10px. Se si desidera utilizzare altre unità accanto a px (ad esempio dp) è possibile utilizzare TypedValue.applyDimension() per convertirle prima in pixel.

Margini

margini sono applicati ad alcune classi LayoutParams specifici che sottoclasse MarginLayoutParams. Assicurati di utilizzare una sottoclasse specifica quando imposti un margine, ad es. RadioGroup.LayoutParams invece del generico ViewGroup.LayoutParams (quando il layout principale è). Quindi puoi semplicemente usare MarginLayoutParams.setMargins().

Esempio:

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

Hi. Ho provato il codice dei margini sopra e non funziona. I pulsanti sono semplici uno accanto all'altro. – Taras

+0

Penso che il valore di padding di default sia circa 10, quindi quando date 10 padding non ve ne accorgerete, provate un valore più grande come 40 e vedrete che funziona. –