Impostare un layoutmargin su una casella di controllo creata in modo dinamico
-
27-09-2019 - |
Domanda
Sto scrivendo un manager app compito che scarica un elenco di compiti e attività secondarie da un server e crea una nuova casella di controllo per ogni elemento e lo aggiunge un layout lineare (chiamata ll sotto). Il problema che sto avendo è che non riesco ad impostare il "margine Piano left" utilizzando Java come posso con XML (questo è per le attività secondarie per i rientri delle un po 'sullo schermo). Posso impostare la maggior parte altre proprietà XML, ma cb.setMargins () non funziona (dice undefined per tipo checkbox). Impostare l'imbottitura del corso non ottenere il risultato desiderato.
for(int i=0;i<tasks.size();i++) {
CheckBox cb = new CheckBox(this);
cb.setText(tasks.get(i).subtask_desc);
cb.setButtonDrawable(R.drawable.checkbox_xml);
ll.addView(cb);
}
Tutte le idee o come avrei lavorato con questo?
Soluzione
Credo che si dovrebbe aggiungere la casella di controllo alla LinearLayout utilizzando le LayoutParams corrette:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.leftMargin = 123;
li.addView(cb, params);
Speranza che aiuta!
Altri suggerimenti
Ciao Prova questo ...
private LinearLayyout ll = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.leftMargin = 123;;
CheckBox cb;
for(int i = 0; i < 10; i++) {
cb = new CheckBox(this);
cb.setText(categoryListArray[i]);
ll.addView(cb, ll);
}