Legen Sie einen layoutmargin auf einer dynamisch erstellten Checkbox
-
27-09-2019 - |
Frage
Ich schreibe einen Task-Manager App, dass Downloads eine Liste von Aufgaben und Teilaufgaben von einem Server und ein neues Kontrollkästchen für jedes Element erstellt und fügt sie zu einem linearen Layout (genannt ll unten). Das Problem, das ich habe ist, dass ich nicht die Java mit „Layout Rand links“ festlegen kann, wie ich mit XML kann (dies ist für die Unteraufgaben sie ein wenig auf dem Bildschirm einrücken). Ich kann die meisten anderen XML-Eigenschaften festgelegt, aber cb.setMargins () funktioniert nicht (sagt für Typ Checkbox nicht definiert). die Polsterung natürlich Einstellung nicht das gewünschte Ergebnis erzielen.
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);
}
Irgendwelche Ideen oder, wie ich durch diese Arbeit?
Lösung
Ich denke, man sollte die Checkbox des Linearlayout mit den richtigen LayoutParams hinzufügen:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.leftMargin = 123;
li.addView(cb, params);
Ich hoffe, das hilft!
Andere Tipps
Hallo Versuchen Sie, diese ...
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);
}