تصف اللوحة خصائص المساحة التي تشغلها وتعمل كحاوية للتطبيق. يمكنك استخدام إعدادات XML لتحديد اللوحات التي توفّر طريقة مرنة وبدون رموز لتخصيص واجهات المستخدم. لإدارة الحالات والمثيلات، يتتبّع النظام اللوحات المحدّدة.
قائمة اللوحات
تحمّل واجهة مستخدم النظام تعريفات لوحاتها من مورد مصفوفة باسم window_states. تشير مصفوفة الموارد هذه إلى ملفات XML التي يتم فيها تحديد إعدادات اللوحات الفردية. يعني هذا الأسلوب المركزي أنّ اللوحات التي تديرها واجهة المستخدم القابلة للتوسيع يتم تحميلها على النحو المطلوب وتكون جاهزة للاستخدام من قِبل النظام.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="window_states">
<item>@xml/app_panel</item>
<item>@xml/back_panel</item>
...
</array>
</resources>
تعريف اللوحة
يتم تحديد كل لوحة في إطار واجهة المستخدم القابلة للتوسيع باستخدام علامة XML باسم <TaskPanel> أو <DecorPanel>. تصف السمة <TaskPanel> خصائص حاوية التطبيق، بينما تصف السمة <DecorPanel> خصائص حاوية العرض.
تحمّل واجهة مستخدم النظام تعريفات اللوحات هذه وتتتبّع اللوحات إلى أن يتم تحميل إعداد آخر، مثلاً، من خلال تغيير الإعداد بسبب التدوير أو طلب صريح من النظام. يعمل العنصران <TaskPanel> و<DecorPanel> كمكوّنات أساسية لإنشاء تجربة مخصّصة من خلال مكوّنات واجهة مستخدم قابلة للضبط.
سمات XML
يمكن أن تحتوي العلامة <TaskPanel> على السمات التالية التي يمكنك استخدامها لتحديد الحالات والانتقالات.
| السمة | الحالة | الوصف |
|---|---|---|
id |
إلزامي | تحدّد هذه السمة معرّفًا فريدًا للوحة. تُستخدَم هذه السمة لاسترداد اللوحة من PanelPool وإدارة حالتها داخل النظام. |
role |
إلزامي | تحدّد هذه السمة الغرض من اللوحة أو وظيفتها في النظام. يمكن أن تشير القيمة إلى مورد سلسلة أو مصفوفة سلاسل لأسماء المكوّنات أو معرّف تخطيط. على سبيل المثال، يمكنه تحديد الأنشطة الدائمة التي يجب عرضها دائمًا في اللوحة، أو تحديد تصميم سيتم تضخيمه. |
defaultVariant |
اختياري | تحدّد هذه السمة رقم تعريف الصيغة التي يجب أن تعتمدها اللوحة في البداية عند تحميلها. في حال عدم تحديدها، يمكن للنظام استخدام أول خيار محدد كخيار تلقائي. |
displayId |
اختياري | تحدّد هذه السمة معرّف الشاشة التي من المفترض أن تظهر عليها اللوحة. |
defaultLayer |
اختياري | يمكن تحديد ترتيب Z تلقائي لخيارات اللوحة إذا لم تحدّد الخيارات طبقة بشكل صريح. |
controller |
اختياري، وقد يتغير |
تشير هذه السمة إلى مرجع لمورد (عادةً ما يكون معرّف XML) يحدّد وحدة تحكّم خاصة بلوحة، ما يتيح تخزين قيم الإعدادات وتمريرها إلى وحدات التحكّم المخصّصة في اللوحات. يجب أن تنفّذ وحدات التحكّم هذه واجهة |
عناصر XML الفرعية
يمكن أن تتضمّن العلامتان <TaskPanel> و<DecorPanel> العناصر الفرعية التالية لتحديد الخصائص والسلوكيات التلقائية.
| السمة | الوصف |
|---|---|
<Variant> |
تصف العلامة المتداخلة إعدادًا مرئيًا معيّنًا للوحة في أي وقت محدّد. يمكن أن تتضمّن اللوحة عدة أشكال، كل شكل منها يتم تعريفه بواسطة معرّف فريد. يحدّد كل خيار سمات مثل الحدود ومستوى العرض والطبقة وقيمة ألفا ونصف قطر الزاوية والمسافات البادئة لهذا الإعداد المحدّد. يمكن أن تكتسب خيارات المنتج أيضًا سمات من خيار منتج أساسي. |
<KeyFrameVariant> |
تتيح إضافة <Variant> إمكانية الاستيفاء
للخصائص المرئية بين مختلف الأنواع استنادًا إلى قيمة كسرية مستمرة (من 0 إلى 1)، ويتم استخدامها في عمليات الانتقال السلسة والديناميكية، مثل أثناء عملية السحب، عندما تعتمد حالة اللوحة على إدخال مستمر مثل مقدار السحب. |
<Transitions> |
يحتوي العنصر المتداخل على مجموعة من تعريفات يحدّد كل |
يمكن أن تتضمّن علامة <TaskPanel> أيضًا عناصر فرعية خاصة لتحديد السلوكيات الخاصة بالمهام.
| السمة | الوصف |
|---|---|
<Restart> |
علامة متداخلة لوصف سياسة إعادة التشغيل التي سيتم تطبيقها عندما تصبح TaskPanel فارغة. تتيح هذه العلامة استخدام السمتَين policy، التي يمكن ضبطها على DEFAULT أو LAST، وmaxRetry، التي تحدّد عدد المرات التي ستتم فيها محاولة إعادة التشغيل قبل انتهاء المهلة. |
<TaskBehavior> |
علامة متداخلة لوصف سلوك عمليات تشغيل المهام في هذه اللوحة تتيح علامة التبويب هذه السمة newTaskLaunchPolicy التي تضبط سلوك عمليات تشغيل المهام الجديدة من لوحة TaskPanel هذه. قيم الإعدادات الصالحة لهذه السياسة هي DEFAULT أو REMAIN_IN_SOURCE أو REPARENT_TO_SOURCE. |
نموذج التعليمات البرمجية
<TaskPanel id="@+id/panelId"
role="@array/roleValue"
defaultVariant="@id/closed"
displayId="0" >
<Variant id="@+id/base">
<Bounds left="0" top="0" width="100%" height="100%"/>
</Variant>
<Variant id="@+id/opened" parent="@id/base">
<Visibility isVisible="true"/>
</Variant>
<Variant id="@+id/closed" parent="@id/base">
<Visibility isVisible="false"/>
</Variant>
<Transitions>
<Transition fromVariant="@id/closed"
toVariant="@id/opened"
onEvent="open_event"/>
<Event id="_System_TaskOpenEvent" panelId="@id/panelId" />
</Transition>
</Transitions>
</TaskPanel>