android - تحقق مما إذا كان عنصر العرض يضاف إلى التخطيط أم لا برمجيًا




performance android-layout (4)

في فئة الجزء الخاص بي ، أقوم بإضافة عنصر عرض فرعي برمجيًا إلى التنسيق الخاص بي بشكل مشروط:

LinearLayout child = (LinearLayout) inflater.inflate(R.layout.child_view, null);

LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,100);

container.addView(child, params);

حيث سيتم تشغيل التعليمات البرمجية أعلاه بشكل مشروط ، لذلك ، في وقت ما ، أود أن أتحقق مما إذا كان طريقة العرض التابعة قد تمت إضافتها أم لا ، وكيفية إجراء هذا التحقق برمجيًا؟

https://code.i-harness.com


أعتقد أنه يمكنك استخدام ببساطة

findViewById(your_view_id) 

الطريقة: إذا كانت نتائجه خالية ، فلا يوجد طريقة عرض ، وإلا فسيكون العرض موجودًا


أو إذا كان لديك مثيل عرض للعثور عليه ، فيمكنك:

if (container.indexOfChild(childView) == -1) {
  // Add child to container.
}

لا أستطيع كتابة تعليق لذا isAttachedToWindow() هنا كحل: من مستوى API 19 يمكنك الاتصال بـ isAttachedToWindow() الذي لا يساعد كثيرًا ، ولكن إذا كنت تهدف إلى API 19 أو أعلى ، فيجب أن يعمل ذلك من خلال الوثائق.


نأسف للإجابة المتأخرة ولكن يمكنك تجربة هذا البديل:

استخدم container.getChildCount(); قبل إضافة وعرض بعد. مثل :

int x = container.getChildCount();

container.addView(child, params);

int y = container.getChildCount();

if(y > x)
   Toast.makeText(context, "View Successfully Added!", Toas.LENGTH_SHORT).show();




android-emulator