یک پنل، ویژگیهای ناحیهای را که اشغال میکند توصیف میکند و به عنوان یک کانتینر برنامه عمل میکند. شما از پیکربندیهای 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>
تعریف میشود که ویژگیهای یک کانتینر برنامه را توصیف میکند. رابط کاربری سیستم این تعاریف پنل را بارگذاری میکند و پنلها را تا زمان بارگذاری پیکربندی دیگر دنبال میکند.
برای مثال، با تغییر پیکربندی به دلیل چرخش یا درخواست صریح سیستم. <TaskPanel>
به عنوان یک جزء اساسی برای ایجاد یک تجربه سفارشی از طریق اجزای رابط کاربری قابل تنظیم عمل میکند.
ویژگیهای XML
تگ <TaskPanel>
میتواند شامل این ویژگیها باشد که میتوانید برای تعریف حالتها و انتقالها از آنها استفاده کنید.
ویژگی | وضعیت | توضیحات |
---|---|---|
id | اجباری | یک شناسه منحصر به فرد برای پنل مشخص میکند. این ویژگی برای بازیابی پنل از PanelPool و مدیریت وضعیت آن در سیستم استفاده میشود. |
role | اجباری | هدف یا عملکرد پنل را در سیستم تعریف میکند. این مقدار میتواند به یک منبع رشتهای، یک آرایه رشتهای از نام اجزا یا یک شناسه طرحبندی اشاره کند. برای مثال، میتواند فعالیتهای پایداری را که باید همیشه روی پنل نمایش داده شوند یا یک طرحبندی که باید فشرده شود، تعریف کند. |
defaultVariant | اختیاری | شناسهی گونهای را که پنل باید هنگام بارگذاری اولیه اتخاذ کند، مشخص میکند. در صورت عدم تعیین شناسه، سیستم میتواند از اولین گونهی تعریفشده به عنوان پیشفرض استفاده کند. |
displayId | اختیاری | شناسهی نمایشگری را که پنل قرار است در آن نمایش داده شود، مشخص میکند. |
defaultLayer | اختیاری | میتواند یک ترتیب Z پیشفرض برای انواع پنل مشخص کند اگر انواع به صراحت یک لایه را تعریف نکنند. |
controller | اختیاری، مشمول تغییر | به منبعی (معمولاً یک شناسه XML) اشاره میکند که یک کنترلکننده مخصوص پنل را تعریف میکند، که امکان ذخیره و ارسال مقادیر پیکربندی به کنترلکنندههای پنل سفارشی را فراهم میکند. این کنترلرها باید رابط |
عناصر فرزند XML
تگ <TaskPanel>
میتواند شامل این ویژگیها باشد تا ویژگیها و رفتارهای پیشفرض را تعریف کند،
ویژگی | توضیحات |
---|---|
<Variant> | تگهای تو در تو، پیکربندی بصری خاصی را برای پنل در هر زمان مشخص توصیف میکنند. یک پنل میتواند چندین نوع داشته باشد که هر کدام با یک شناسه منحصر به فرد مشخص میشوند. هر نوع، ویژگیهایی مانند مرزها، قابلیت مشاهده، لایه، آلفا، شعاع گوشه و درجها را برای آن پیکربندی خاص تعریف میکند. انواع همچنین میتوانند ویژگیهایی را از یک نوع والد به ارث ببرند. |
<KeyFrameVariant> | افزونهی <Variant> امکان درونیابی ویژگیهای بصری بین انواع مختلف را بر اساس یک مقدار کسری پیوسته (0 تا 1) فراهم میکند و برای انتقالهای روان و پویا، مانند هنگام عملیات کشیدن (drag)، زمانی که وضعیت پنل به یک ورودی پیوسته مانند مقدار کشیدن بستگی دارد، استفاده میشود. |
<Transitions> | تگ تو در تو شامل مجموعهای از تعاریف هر |
کد نمونه
<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>