Konfigurowanie przejścia

Użyj przejścia, aby określić zmiany między panelami. Możesz zdefiniować przejście, aby określić, jak i kiedy wprowadzić zmianę między 2 wariantami panelu. Dla każdego panelu możesz zdefiniować listę przejść.

Użyj tagu XML <Transitions> jako kontenera dla co najmniej jednej <Transition>definicji w konfiguracji pojedynczego <TaskPanel> lub <DecorPanel>. Za pomocą tego tagu możesz zdefiniować zestaw reguł animacji, które określają, kiedy i jak panel powinien zmieniać stan wizualny z jednego odrębnego wariantu na inny.

Atrybuty XML

Tag <Transitions> może definiować domyślne wartości tych elementów podrzędnych <Transition>:

Atrybut Stan Opis
<defaultDuration> Opcjonalny

Określa domyślny czas trwania w milisekundach, który ma być stosowany do wszystkich elementów podrzędnych

Elementy <Transition>, które nie mają wyraźnie ustawionego atrybutu czasu trwania.

Jeśli ten atrybut nie jest określony, używana jest stała DEFAULT_DURATION systemu, zwykle 300 milisekund.

defaultInterpolator Opcjonalny

Odwołuje się do identyfikatora zasobu XML interpolatora Androida. Na przykład: @android:anim/accelerate_decelerate_interpolator. Interpolator jest używany domyślnie w przypadku wszystkich elementów podrzędnych <Transition>, które nie mają wyraźnie ustawionego atrybutu interpolatora.

Jeśli nie określisz domyślnego interpolatora, system zwykle używa domyślnie interpolatora AccelerateDecelerateInterpolator.

Elementy podrzędne XML

Elementem podrzędnym elementu <Transitions> jest <Transition>, czyli element podstawowy używany do definiowania konkretnej ścieżki animacji między wariantami PanelState. W jednym bloku <Transitions> można zagnieżdżać wiele elementów <Transition>.

Kod demonstracyjny

W tym przykładzie fromVariant jest opcjonalne. Jeśli nie jest zdefiniowany, używana jest bieżąca odmiana. Jeśli zdefiniowano fromVariant, przejście jest używane tylko wtedy, gdy wszystkie parametry są zgodne. Parametry są określone w zdarzeniu i fromVariant.

<Transitions defaultDuration="400"
         defaultInterpolator="@android:anim/linear_interpolator">
  <Transition fromVariant="closed_app"
              toVariant="opened_app">
    <Event id="app_opened" panel="application_panel" />
  </Transition>
</Transitions>

Przejście

Przejście opisuje, jak animować zmianę stanu wizualnego między 2 wariantami panelu. Przejście określa ścieżkę od jednego wariantu do drugiego. W tym celu przejście określa szczegóły, takie jak animacja do zastosowania i zdarzenie potrzebne do jej wywołania.

W przypadku panelu przejścia mogą definiować animacje właściwości takich jak granice, widoczność i wartość alfa. Jeśli nie zostanie określony niestandardowy animator, użyty zostanie animator domyślny.

Atrybuty XML

Tag <Transition> używa kilku atrybutów do określania charakterystyki animacji i warunków, w jakich ma się ona pojawiać.

Elementy podrzędne XML

<Event> określa właściwości zdarzenia, które może wywołać przejście.

Unikalny identyfikator panelu powiązanego z tym zdarzeniem.
Atrybut Stan Opis
<id> Obowiązkowe Unikalny identyfikator zdarzenia, które ma aktywować regułę.
<panelId> Opcjonalny Niepowtarzalny identyfikator panelu powiązanego ze zdarzeniem.
componentName Opcjonalny Nazwa komponentu powiązanego z tym zdarzeniem.
packageName Opcjonalny Nazwa pakietu powiązanego ze zdarzeniem.

Kod demonstracyjny

<Transitions defaultDuration="400"
        defaultInterpolator="@android:anim/accelerate_interpolator">
  <!-- A transition from 'closed_app' to 'opened_app' variant, triggered by 'open_app_event' -->
  <Transition fromVariant="closed_app"
              toVariant="opened_app">
    <Event id="app_opened" panel="application_panel" />
  <Transition>

  <!-- A transition from 'opened_app' to 'closed_app' variant, using a custom animator -->
  <Transition fromVariant="opened_app"
              toVariant="closed_app"
              animator="@animator/close_app">
    <Event id="_System_PanelEmptyEvent"
           panelId="application_panel" />
  <Transition>
</Transitions>