قم بتعيين layoutmargin على خانة اختيار تم إنشاؤها ديناميكيًا
-
27-09-2019 - |
سؤال
أنا أكتب تطبيق MANGER للمهمة يقوم بتنزيل قائمة بالمهام والمهام الفرعية من خادم وإنشاء خانة اختيار جديدة لكل عنصر ويضيفها إلى تخطيط خطي (يسمى LL أدناه). المشكلة التي أواجهها هي أنه لا يمكنني تعيين "هامش التصميم اليسرى" باستخدام Java كما أستطيع مع XML (هذا للمهام الفرعية لإدخالها قليلاً على الشاشة). يمكنني تعيين معظم خصائص XML الأخرى ، لكن CB.SetMargins () لا يعمل (يقول غير محدد في خانة الاختيار النوع). وضع الحشو بالطبع لا يحقق النتيجة المرجوة.
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 باستخدام 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);
}
لا تنتمي إلى StackOverflow