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