Establecer un layoutmargin en una casilla de verificación creada dinámicamente
-
27-09-2019 - |
Pregunta
Estoy escribiendo una aplicación de administrador de tareas que descarga una lista de tareas y subtareas de un servidor y crea una nueva casilla de cada elemento y lo añade a una disposición lineal (llamado LL abajo). El problema que estoy teniendo es que no puede establecer el "margen de diseño izquierda" utilizando Java como puedo con XML (esto es para las subtareas a ellos sangrar un poco en la pantalla). Puedo ajustar la mayoría de otras propiedades XML, pero cb.setMargins () no funciona (dice indefinido Se casilla tipo). Ajuste el relleno, por supuesto, no logra el resultado deseado.
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);
}
Cualquier idea o cómo iba a trabajar a través de este?
Solución
Creo que se debe añadir la casilla de verificación a la LinearLayout utilizando los LayoutParams correctas:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.leftMargin = 123;
li.addView(cb, params);
Espero que ayude!
Otros consejos
Hola Prueba esto ...
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);
}