يحدّد النوع حالة مرئية معيّنة للوحة، ما يتيح للوحة واحدة أن تتضمّن عدة تمثيلات مرئية مختلفة، مثل حالة مفتوحة أو مغلقة. استخدام XML لضبط خيار المنتج استخدِم علامة فرعية ضمن العنصر <Panel>
.
تحتوي كل علامة <Variant>
على سمة id
إلزامية لتحديدها بشكلٍ فريد.
يمكن أن تشير العلامة أيضًا إلى خيار منتج رئيسي لاكتساب السمات. تتيح آلية التوريث هذه تحديد السمات المشتركة بكفاءة على مستوى خيارات متعدّدة.
سمات XML
لتحديد الحالات وعمليات الانتقال، استخدِم هذه السمات مع العلامة <TaskPanel>
أو <DecorPanel>
.
السمة | الحالة | الوصف |
---|---|---|
id |
إلزامي | المعرّف الفريد لخيارات المنتج. يُستخدَم هذا المعرّف للإشارة إلى خيار المنتج في عمليات الانتقال أو كقيمة defaultVariant للوحة.
|
parent |
اختياري | تحدّد هذه السمة معرّف خيار منتج آخر يجب أن يرث الخيار الحالي سماته. إذا لم يتم تحديد سمة بشكل صريح في خيار المنتج الحالي، سيتم استخدام القيمة المحدّدة في خيار المنتج الرئيسي. |
عناصر XML الفرعية
استخدِم هذه العناصر الاختيارية لتحديد الخصائص المرئية للوحة عندما تكون في حالة هذا النوع.
العنصر الفرعي | الوصف |
---|---|
<Visibility> |
تحدّد هذه السمة ما إذا كانت اللوحة مرئية أو مخفية، وتحتوي على السمة isVisible (قيمة منطقية). |
<Alpha> |
تحدّد هذه السمة مستوى شفافية اللوحة، وتحتوي على السمة alpha (عدد عائم، من 0.0 إلى 1.0). |
<Layer> |
تضبط هذه السمة ترتيب اللوحة على المحور Z بالنسبة إلى اللوحات الأخرى، وتحتوي على السمة layer (عدد صحيح). يتم رسم القيم الأعلى في الأعلى. |
<Focus> |
تحدّد هذه السمة ما إذا كان بإمكان اللوحة اكتساب التركيز أثناء الانتقال، وتحتوي على السمة onTransition (منطقية).
|
<Bounds> |
تحدّد هذه السمة مساحة مستطيلة (الموضع والحجم) للوحة على الشاشة. يتم التحكّم في هذه المنطقة من خلال سمات مثل left وtop وbottom وwidth وheight.
عند استخدام النسب المئوية، يمكنك استخدام سمات الإزاحة لتطبيق تعديلات ثابتة على الحدود المستندة إلى النسب المئوية، مثل على سبيل المثال، لتحديد أنّ اللوحة تشغل% 100 من ارتفاع الشاشة مع استبعاد شريط التنقّل ذي الارتفاع الثابت في أسفل الشاشة، اضبط الارتفاع على% 100 و |
<SafeBounds> |
تحدّد هذه السمة مساحة آمنة ضمن حدود اللوحة لا تتداخل معها
الفتحات أو الحواف، وذلك للتأكيد على توافق التطبيقات التي يتم رسمها
داخلها. سماتها مشابهة لسمات <Bounds> .
|
<Corner> |
تحدّد هذه السمة نصف قطر زوايا اللوحة، ما يتيح الحصول على زوايا مستديرة، وتحتوي على سمة نصف القطر (عدد صحيح). الزاوية الحادة هي الخيار التلقائي ولا يلزم تحديدها. |
<Insets> |
تحدّد هذه السمة المسافات البادئة (الحشو) للوحة. يحتوي على سمات اليسار والأعلى واليمين والأسفل. ويتم إرسال معلومات عن هذه الحواف إلى التطبيقات التي تم تشغيلها داخل اللوحة.
|
<Background> |
تضيف هذه السمة لوحة اختيارية لتزيين الخلفية، وذلك لمنع ظهور تأثيرات الشفافية عند التبديل بين التطبيقات. تحدّد هذه السمة خصائص مثل اللون وقيمة ألفا للطبقة الزخرفية. تكون خصائص طبقة الزخرفة، مثل الحدود والطبقة، هي الخصائص التلقائية للمتغير إذا لم يتم ضبطها مسبقًا. |
نموذج التعليمات البرمجية
<Variant id="@id/opened">
<Visibility isVisible="true"/>
<Bounds left="0dp"
top="0dp"
right="100%"
bottom="100%"
bottomOffset="100dp"/>
<Alpha value="1.0"/>
<Layer value="10"/>
<Focus onTransition="true"/>
<Corner radius="24dp"/>
<Insets left="16dp" top="0dp" right="16dp" bottom="48dp"/>
<Background color="@color/app_background" alpha="0.9"/>
</Variant>
احتساب معدل التغير في الخصائص المرئية
استخدِم KeyFrameVariant
لدمج السمات المرئية. يعتمد هذا النوع المتخصّص من variant
على قيمة كسرية مستمرة (من 0 إلى 1) تتيح انتقالات سلسة وديناميكية تستند إلى إدخال مستمر، مثل عملية السحب عندما تتغير حالة اللوحة ديناميكيًا مع مقدار السحب.
سمات XML
لا يحتوي KeyFrameVariant
على سمات. يحتوي العلامة <KeyFrameVariant>
على المعلومات اللازمة لتحديد KeyFrameVariant
.
عناصر XML الفرعية
تحتوي KeyFrameVariant
على علامة ثانوية واحدة أو أكثر من النوع <KeyFrame>
. يحتوي كل
<KeyFrame>
على سمة framePosition
(من 0 إلى 100) ويشير إلى سمة خيار منتج (معرّف خيار منتج آخر). تحدّد هذه keyframes
حالة اللوحة
في نقاط معيّنة خلال عملية انتقال مستمر.
رمز العيّنة
<KeyFrameVariant id="@id/panel_resizing">
<KeyFrame framePosition="0" variant="@id/minimized"/>
<KeyFrame framePosition="75" variant="@id/opened"/>
<KeyFrame framePosition="100" variant="@id/expanded"/>
</KeyFrameVariant>