Установите layoutmargin на динамически создаваемый флажок
Я пишу приложение Task manager, которое загружает список задач и подзадач с сервера и создает новый флажок для каждого элемента и добавляет его в линейный макет (называемый ll ниже). Проблема, с которой я сталкиваюсь, заключается в том, что я не могу установить "поле макета слева", используя java, как я могу с XML (это для подзадач, чтобы немного отступить от них на экране). Я могу задать большинство других свойств xml, но cb.setMargins () не работает (говорит undefined for type checkbox). Установка отступа конечно же не делает добейтесь желаемого результата.
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);
}
Какие-нибудь идеи или как я буду работать через это?
2 ответа:
Я думаю, что вы должны добавить флажок в LinearLayout, используя правильные LayoutParams:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.leftMargin = 123; li.addView(cb, params);
Надеюсь, это поможет!
Привет, попробуй это...
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); }