ضبط لوحة

تصف اللوحة خصائص المساحة التي تشغلها وتعمل كحاوية للتطبيق. يمكنك استخدام إعدادات XML لتحديد اللوحات التي توفّر طريقة مرنة وبدون رموز لتخصيص واجهات المستخدم. لإدارة الحالات والمثيلات، يتتبّع النظام اللوحات المحدّدة.

قائمة اللوحات

تحمّل واجهة مستخدم النظام تعريفات لوحاتها من مورد مصفوفة باسم window_states. تشير مصفوفة الموارد هذه إلى ملفات XML التي يتم فيها تحديد إعدادات اللوحات الفردية. يعني هذا الأسلوب المركزي أنّ اللوحات التي تديرها واجهة Scalable UI يتم تحميلها على النحو المطلوب وتكون جاهزة للاستخدام من قِبل النظام.

<?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>، والتي تصف خصائص حاوية التطبيق. تحمّل واجهة مستخدم النظام تعريفات اللوحات هذه وتتتبّعها إلى أن يتم تحميل إعداد آخر.

على سبيل المثال، بسبب تغيير في الإعدادات نتيجة التدوير أو طلب نظام صريح. تعمل <TaskPanel> كمكوّن أساسي لإنشاء تجربة مخصّصة من خلال مكوّنات واجهة مستخدم قابلة للضبط.

سمات XML

يمكن أن تحتوي العلامة <TaskPanel> على السمات التالية التي يمكنك استخدامها لتحديد الحالات والانتقالات.

السمة الحالة الوصف
id إلزامي تحدّد هذه السمة معرّفًا فريدًا للوحة. تُستخدَم هذه السمة لاسترداد اللوحة من PanelPool وإدارة حالتها داخل النظام.
role إلزامي تحدّد هذه السمة الغرض من اللوحة أو وظيفتها في النظام. يمكن أن تشير القيمة إلى مورد سلسلة أو مصفوفة سلاسل لأسماء المكوّنات أو معرّف تخطيط. على سبيل المثال، يمكنه تحديد الأنشطة الثابتة التي يجب عرضها دائمًا في اللوحة، أو تحديد تنسيق سيتم تضخيمه.
defaultVariant اختياري تحدّد هذه السمة رقم تعريف خيار المنتج الذي يجب أن تعتمده اللوحة في البداية عند تحميلها. في حال عدم تحديدها، يمكن للنظام استخدام أول خيار محدد كخيار تلقائي.
displayId اختياري تحدّد هذه السمة معرّف الشاشة التي من المفترض أن تظهر عليها اللوحة.
defaultLayer اختياري يمكن تحديد ترتيب Z تلقائي لخيارات اللوحة إذا لم تحدّد الخيارات طبقة بشكل صريح.
controller اختياري،
وقد يتغير

تشير هذه السمة إلى مرجع لمورد (عادةً ما يكون معرّف XML) يحدّد وحدة تحكّم خاصة بلوحة، ما يتيح تخزين قيم الإعدادات وتمريرها إلى وحدات التحكّم المخصّصة في اللوحات.

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

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

يمكن أن تتضمّن العلامة <TaskPanel> السمات التالية لتحديد الخصائص والسلوكيات التلقائية:

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

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

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

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

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

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

نموذج التعليمات البرمجية

<Panel 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>
</Panel>