Panel opisuje właściwości obszaru, który zajmuje, i działa jako kontener aplikacji. Konfiguracje XML służą do definiowania paneli, które zapewniają elastyczne i nie wymagające pisania kodu podejście do dostosowywania interfejsów. Aby zarządzać instancjami i stanami, system śledzi zdefiniowane panele.
Lista paneli
Interfejs systemu wczytuje definicje paneli z zasobu tablicy o nazwie window_states. Ta tablica zasobów wskazuje pliki XML, w których zdefiniowane są konfiguracje poszczególnych paneli. Dzięki temu scentralizowanemu podejściu panele zarządzane przez skalowalny interfejs są wczytywane zgodnie z przeznaczeniem i gotowe do użycia przez system.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="window_states">
<item>@xml/app_panel</item>
<item>@xml/back_panel</item>
...
</array>
</resources>
Definicja panelu
Każdy panel w ramach skalowalnego interfejsu jest definiowany za pomocą tagu XML o nazwie <TaskPanel> lub <DecorPanel>. <TaskPanel> opisuje właściwości kontenera aplikacji, a <DecorPanel> – właściwości kontenera widoku.
Interfejs systemu wczytuje te definicje paneli i śledzi je do momentu wczytania innej konfiguracji, np. w wyniku zmiany konfiguracji spowodowanej obróceniem urządzenia lub wyraźną prośbą systemu. <TaskPanel> i <DecorPanel> to podstawowe komponenty, które umożliwiają tworzenie niestandardowych rozwiązań za pomocą konfigurowalnych komponentów interfejsu.
Atrybuty XML
Tag <TaskPanel> może zawierać te atrybuty, których możesz używać do definiowania stanów i przejść.
| Atrybut | Stan | Opis |
|---|---|---|
id |
Obowiązkowe | Określa unikalny identyfikator panelu. Ten atrybut służy do pobierania panelu z PanelPool i zarządzania jego stanem w systemie. |
role |
Obowiązkowe | Określa cel lub funkcję panelu w systemie. Wartość może odnosić się do zasobu ciągu tekstowego, tablicy ciągów tekstowych z nazwami komponentów lub identyfikatora układu. Może na przykład definiować trwałe działania, które powinny być zawsze wyświetlane na panelu, lub układ do rozwinięcia. |
defaultVariant |
Opcjonalny | Określa identyfikator wariantu, który panel powinien początkowo przyjąć po wczytaniu. Jeśli nie zostanie określona, system może użyć pierwszej zdefiniowanej wersji jako domyślnej. |
displayId |
Opcjonalny | Określa identyfikator wyświetlacza, na którym ma się pojawić panel. |
defaultLayer |
Opcjonalny | Może określać domyślną kolejność Z wariantów panelu, jeśli warianty nie definiują jednoznacznie warstwy. |
controller |
Opcjonalnie, może ulec zmianie |
Odwołuje się do zasobu (zwykle identyfikatora XML), który definiuje kontroler specyficzny dla panelu, co umożliwia przechowywanie i przekazywanie wartości konfiguracji do niestandardowych kontrolerów paneli. Te kontrolery powinny implementować interfejs |
Elementy podrzędne XML
Tagi <TaskPanel> i <DecorPanel> mogą zawierać te elementy podrzędne, aby określać cechy i domyślne zachowania.
| Atrybut | Opis |
|---|---|
<Variant> |
Tag zagnieżdżony opisuje konkretną konfigurację wizualną panelu w danym momencie. Panel może mieć wiele wariantów, z których każdy jest identyfikowany za pomocą unikalnego identyfikatora. Każdy wariant określa właściwości takie jak granice, widoczność, warstwa, przezroczystość, promień zaokrąglenia i wstawki dla danej konfiguracji. Warianty mogą też dziedziczyć właściwości po nadrzędnym wariancie. |
<KeyFrameVariant> |
Rozszerzenie <Variant> umożliwia interpolację właściwości wizualnych między różnymi wariantami na podstawie ciągłej wartości ułamka (od 0 do 1) i jest używane do płynnych i dynamicznych przejść, np. podczas przeciągania, gdy stan panelu zależy od ciągłego wejścia, takiego jak wartość przeciągnięcia. |
<Transitions> |
Tag zagnieżdżony zawiera zbiór definicji Każdy element |
Tag <TaskPanel> może też zawierać te specjalne elementy podrzędne, aby określać zachowania związane z poszczególnymi zadaniami.
| Atrybut | Opis |
|---|---|
<Restart> |
Zagnieżdżony tag opisujący zasadę ponownego uruchamiania, która ma być stosowana, gdy element TaskPanel stanie się pusty. Ten tag obsługuje atrybuty policy, które można ustawić na DEFAULT lub LAST, oraz maxRetry, który określa, ile razy zostanie podjęta próba ponownego uruchomienia przed upłynięciem limitu czasu. |
<TaskBehavior> |
Zagnieżdżony tag opisujący zachowanie uruchamiania zadań w tym panelu. Ten tag obsługuje atrybut newTaskLaunchPolicy, który konfiguruje działanie nowych zadań uruchamianych z tego panelu zadań. Prawidłowe wartości konfiguracji tej zasady to DEFAULT, REMAIN_IN_SOURCE lub REPARENT_TO_SOURCE. |
Kod demonstracyjny
<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>