Настроить переход

Используйте переходы для определения изменений между панелями. Вы можете определить переход, описывающий, как и когда следует вносить изменения между двумя вариантами панели. Для каждой панели можно определить список переходов.

Используйте XML-тег <Transitions> в качестве контейнера для одного или нескольких определений <Transition> в конфигурации одной панели <TaskPanel> или <DecorPanel> . Этот тег позволяет определить набор правил анимации, определяющих, когда и как панель должна изменять свое визуальное состояние с одного варианта на другой.

XML-атрибуты

Тег <Transitions> может определять значения по умолчанию для этих дочерних элементов <Transition> :

Атрибут Статус Описание
<defaultDuration> Необязательный

Задает продолжительность по умолчанию в миллисекундах, которая будет применяться ко всем дочерним процессам.

Элементы <Transition>, которые явно не задают атрибут duration.

Если этот параметр не указан, используется системная константа DEFAULT_DURATION , обычно составляющая 300 миллисекунд.

defaultInterpolator Необязательный

Ссылка на XML-ресурс интерполятора Android. Например, @android:anim/accelerate_decelerate_interpolator . Интерполятор используется по умолчанию для всех дочерних элементов <Transition> , которые явно не задают атрибут интерполятора.

Если интерполятор по умолчанию не указан, система обычно использует интерполятор AccelerateDecelerateInterpolator .

XML дочерние элементы

Дочерним элементом блока <Transitions> является <Transition> , основной элемент, используемый для определения конкретного пути анимации между вариантами PanelState . В один блок <Transitions> можно вложить несколько элементов <Transition> .

Пример кода

В этом примере fromVariant является необязательным. Если он не определен, используется текущий вариант. Если fromVariant определен, переход используется только тогда, когда все параметры совпадают. Параметры указываются в Event и 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>

Переход

Переход описывает способ анимации изменения визуального состояния между двумя вариантами панели. Переход описывает путь от одного варианта к другому. Для этого переход задает такие детали, как применяемая анимация и событие, необходимое для ее запуска.

Для панели переходы могут определять анимацию для таких свойств, как границы, видимость и прозрачность. Если пользовательский аниматор не указан, используется аниматор по умолчанию.

XML-атрибуты

Тег <Transition> использует несколько атрибутов для определения характеристик анимации и условий, при которых она должна происходить.

XML дочерние элементы

<Event> определяет свойства события, которое может инициировать переход.

Уникальный идентификатор панели, связанной с этим мероприятием.
Атрибут Статус Описание
<id> Обязательный Уникальный идентификатор события для активации триггера.
<panelId> Необязательный Уникальный идентификатор панели, связанной с мероприятием.
componentName Необязательный Название компонента, связанного с этим событием.
packageName Необязательный Название пакета, связанного с мероприятием.

Пример кода

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