51 : اندرويد : تحميل ال view فقط عند الطلب

 

ملاحظة : الموضوع عبارة عن حلقة من حلقات سلسلة برمجة وتطوير اندرويد Android Development

اندرويد :   تحميل ال view فقط عند الطلب

السلام عليكم ورحمة الله وبركاته

تحميل ال view فقط عند الطلب

سوف نتعلم في هذا الدرس مايلي:

  1. تعريف ViewStub
  2. تحميل تنسيق ViewStub

يفضل ان تقرأ

في بعض الاحيان قد يتطلب تنسيقك مجموعة معقدة من ال views التي قد تم للتو استخدامها.

سواء كانت هذه العناصر عبارة عن “تفاصيل عنصر”, “مؤشرات تقدم”, او “رسائل ..”, فإن بإمكانك تقليل استخدام الذاكرة وتسريع عملية ال rendering  عبر تحميل ال views فقط عند الحاجة إليهم.

تعريف ViewStub

ال ViewStub  عبارة عن view خفيف الوزن بدون ابعاد , ولا يقوم برسم أي شيء ولا يساهم ضمن التنسيق.

لذلك فهو رخيص جدا اثناء القيام ب inflate  له , ولا يكلف كثيرا , ويترك لنا view ضمن الهرمية.

يحتاج كل ViewStub  ببساطة إلى تضمين خاصية android:layout  لكي يحدد التنسيق الذي يجب القيام ب Inflate  له.

فيما يلي مثال على ال ViewStub  من اجل شريط تقدم شفاف يقع فوق العناصر.

يجب ان يكون مرئيا فقط عندما يتم استيراد عناصر جديدة ضمن التطبيق.

<ViewStub
    android:id="@+id/stub_import"
    android:inflatedId="@+id/panel_import"
    android:layout="@layout/progress_overlay"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom" />

تحميل تنسيق ViewStub

عندما ترغب بتحميل التنسيق المحدد بواسطة ViewStub, فإنه يتوجب عليك ان تضعه مرئي إما بواسطة استدعاء setVisibility(View.VISIBLE)أو باستدعاء inflate().

 

((ViewStub) findViewById(R.id.stub_import)).setVisibility(View.VISIBLE);
// or
View importPanel = ((ViewStub) findViewById(R.id.stub_import)).inflate();

ملاحظة : يعيد التابع inflate()ال view الذي تم القيام ب inflated  له فور انتهاء العملية. لذلك فانت لست بحاجة لاستدعاء التابع findViewById() في حال كنت ترغب بالتفاعل مع التنسيق.

ما إن يظهرالعنصر الذي يتم القيام ب inflated له , فإن العنصر ViewStub  لا يعود جزء من هرمية ال view.ويتم استبداله بالتنسيقlayout  الذي تم القيام ب Inflate  له ويكون لل view   ال ID الذي تم تحديده ضمن خاصية android:inflatedId ل ViewStub.

ملاحظة : من مساوئ استخدام ViewStub بأنها لا تدعم تاغ <merge/> ضمن التنسيق الذي تقوم ب inflate  له.

 

وإلى لقاء في حلقة قريبة , وإلى ذلك الحين استودعكم الله والسلام عليكم ورحمة الله وبركاته.

Advertisements

, , , , , , , , , , ,

  1. أضف تعليق

اترك رد

Please log in using one of these methods to post your comment:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

%d مدونون معجبون بهذه: