Используйте переходы для определения изменений между панелями. Вы можете определить переход, описывающий, как и когда следует вносить изменения между двумя вариантами панели. Для каждой панели можно определить список переходов.
Используйте XML-тег <Transitions> в качестве контейнера для одного или нескольких определений <Transition> в конфигурации одной панели <TaskPanel> или <DecorPanel> . Этот тег позволяет определить набор правил анимации, определяющих, когда и как панель должна изменять свое визуальное состояние с одного варианта на другой.
XML-атрибуты
Тег <Transitions> может определять значения по умолчанию для этих дочерних элементов <Transition> :
| Атрибут | Статус | Описание |
|---|---|---|
<defaultDuration> | Необязательный | Задает продолжительность по умолчанию в миллисекундах, которая будет применяться ко всем дочерним процессам. Элементы <Transition>, которые явно не задают атрибут duration. Если этот параметр не указан, используется системная константа |
defaultInterpolator | Необязательный | Ссылка на XML-ресурс интерполятора Android. Например, Если интерполятор по умолчанию не указан, система обычно использует интерполятор |
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>