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

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

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

XML-атрибуты

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

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

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

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

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

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

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

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

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

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

Пример кода

В этом примере 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>