Question

J'écris une application de gestionnaire de tâches qui télécharge une liste de tâches et sous-tâches à partir d'un serveur et crée une nouvelle case à cocher pour chaque élément et l'ajoute à une disposition linéaire (appelée ll ci-dessous). Le problème que je vais avoir est que je ne peut pas définir la « marge de mise en page gauche » en utilisant java comme je peux avec XML (ce qui est pour les sous-tâches pour les indent un peu à l'écran). Je peux définir la plupart des autres propriétés xml, mais cb.setMargins () ne fonctionne pas (non défini pour Says case type). Réglage du remplissage bien sûr ne permet pas d'atteindre le résultat souhaité.

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

Toutes les idées ou comment je travaillerais à travers cela?

Était-ce utile?

La solution

Je pense que vous devez ajouter la case à l'aide des LinearLayout LayoutParams correctes:

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.leftMargin = 123;
li.addView(cb, params);

L'espoir qui aide!

Autres conseils

Salut Essayez ceci ...

    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);
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top