ضبط لوحة

تصف اللوحة خصائص المنطقة التي تشغلها وتعمل كحاوية للتطبيق. يمكنك استخدام إعدادات 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) يحدّد وحدة تحكّم خاصة باللوحة، ما يسمح بتخزين قيم الإعدادات وتمريرها إلى وحدات التحكّم المخصّصة باللوحة.

يجب أن تنفّذ وحدات التحكّم هذه واجهة com.android.car.scalableui.panel.TaskPanelController. من حالات الاستخدام الشائعة لوحدات التحكّم هذه تحديد عمليات تخصيص المهام المرنة في وقت التشغيل على اللوحة.

عناصر XML الفرعية

يمكن أن تتضمّن علامتَا <TaskPanel> و<DecorPanel> العناصر الفرعية التالية لـ تحديد الخصائص والسلوكيات التلقائية.

السمة الوصف
<Variant>

تصف العلامة المتداخلة إعدادًا مرئيًا معيّنًا للوحة في أي وقت معيّن. يمكن أن تحتوي اللوحة على خيارات متعددة، يتم تحديد كل منها بـ رقم تعريف فريد.

يحدّد كل خيار خصائص مثل الحدود والرؤية والطبقة، الشفافية ونصف القطر الزاوي والمسافات الداخلية لهذا الإعداد تحديدًا. يمكن أن ترث الخيارات أيضًا خصائص من خيار أساسي.

<KeyFrameVariant> يسمح هذا الخيار، وهو امتداد للعلامة <Variant>، باستيفاء الخصائص المرئية بين الخيارات المختلفة استنادًا إلى قيمة كسر مستمرة (من 0 إلى 1)، ويُستخدَم للانتقالات السلسة والديناميكية، مثل أثناء عملية السحب، عندما تعتمد حالة اللوحة على إدخال مستمر مثل مقدار السحب.
<Transitions>

تحتوي العلامة المتداخلة على مجموعة من <Transition> تعريفات، التي تصف كيفية تحريك واجهة المستخدم بين الخيارات المختلفة.

يحدّد كل <Transition> الخيارَين من و إلى، والحدث الذي يؤدي إلى تشغيله، ويمكنه اختياريًا تحديد `Animator` مخصّص لاستخدامه في الرسوم المتحركة، بالإضافة إلى المدة و المُستكمِل.

يمكن أن تتضمّن العلامة <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>