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



performance android-layout android-intent android-emulator (5)

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

findViewById(your_view_id) 

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

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

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

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

container.addView(child, params);

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


إذا قمت بإنشاء العرض عبر inflater ، يمكنك التحقق من والده

if(view.getParent() != null) {...}

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

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

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

استخدم 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();

LayoutParams - لا تعمل! ! !

تحتاج إلى استخدام نوع: MarginLayoutParams

MarginLayoutParams params = (MarginLayoutParams) vector8.getLayoutParams();
params.width = 200; params.leftMargin = 100; params.topMargin = 200;

مثال التعليمة البرمجية الخاصة بـ MarginLayoutParams:

http://www.codota.com/android/classes/android.view.ViewGroup.MarginLayoutParams





android performance android-layout android-intent android-emulator