51 : اندرويد : تحميل ال view فقط عند الطلب
ملاحظة : الموضوع عبارة عن حلقة من حلقات سلسلة برمجة وتطوير اندرويد Android Development
اندرويد : تحميل ال view فقط عند الطلب
السلام عليكم ورحمة الله وبركاته
تحميل ال view فقط عند الطلب
سوف نتعلم في هذا الدرس مايلي:
- تعريف ViewStub
- تحميل تنسيق 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 له.
وإلى لقاء في حلقة قريبة , وإلى ذلك الحين استودعكم الله والسلام عليكم ورحمة الله وبركاته.
Tag:add search in android app, layout performance android, load view on demand, optimizing Layout Hierarchies, Setting Up the Search Interface, Storing and Searching for Data, ViewStub, اعادة استخدام التنسيقات عبر استخدام, اعداد واجهة المستخدم الخاصة بالبحث, البحث ضمن تطبيق اندرويد, اندرويد : تخزين المعطيات والبحث ضمنها, تحسين اداء التنسيق