قم بتعيين layoutmargin على خانة اختيار تم إنشاؤها ديناميكيًا

StackOverflow https://stackoverflow.com/questions/4059059

سؤال

أنا أكتب تطبيق 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);
    }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top