Установите макетмаргин на динамически созданный флажок
-
27-09-2019 - |
Вопрос
Я пишу приложение Task Manager, которое загружает список задач и подзадач с сервера и создает новый флажок для каждого элемента и добавляет его в линейную макет (вызываемое LL ниже). Проблема у меня есть в том, что я не могу установить «Макет Маржи влево», используя Java, как я могу с XML (это для подзадачи, чтобы сделать их немного на экране). Я могу установить большинство других свойств XML, но CB.SetMargins () не работает (говорит, что undefined для 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);
}
Любые идеи или как я бы поработал через это?
Решение
Я думаю, что вы должны добавить флажок в LinearLayout, используя правильные майкипарамы:
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);
}