FGX Native пока не поддерживает полноценные, настраиваемые анимации, как в FMX. Однако, в состав библиотеки входят готовые решения по стандартным видам анимации, которые позволят вам сделать переходы между экранами приложения, а также осуществить базовую простую анимацию компонентов.
Для работы с анимацией в FGX Native предусмотрен класс FGX.Animation.TfgAnimationHelper
. Этот класс предоставляет готовые шаблоны анимации. Каждый метод поддерживает возможность минимальной настройки, в виде задания длительности анимации. Помимо этого, каждый метод позволяет узнать, когда анимация заканчивается, а также уничтожить компонент по завершении анимации. Все возможные настройки смотрите в FGX.Controls.TfgAnimationOptions.
Открытие и закрытие дочерней формы
Открытие и закрытие формы осуществляется через методы ShowForm
и HideForm
. Ниже представлен код по созданию формы и немедленному запуску шаблона анимации для ее отображения.
FormSecond := TFormSecond.Create(nil);
TfgAnimationHelper.ShowForm(FormSecond);
Если же вы анимируете закрытие формы и планируете ее разрушить, чтобы освободить занимаемую память, то вы можете передать вторым параметром опцию ReleaseOnFinish
. В этом случае форма автоматически будет удалена по завершению анимации.
TfgAnimationHelper.HideForm(Self, [TfgAnimationOption.ReleaseOnFinish]);
Демонстрация
Открытие и закрытие модальной формы
Открытие и закрытие модальной формы осуществляется через методы ShowModalForm
и HideModalForm
.
Демонстрация
Плавное появление и исчезновение
Шаблоны анимации FadeIn
и FadeOut
позволяют выполнить плавное появление и исчезновение любого компонента. В качестве второго параметра можно указать опцию TfgAnimationOption.StartFromCurrent
, это даст возможность выполнения анимации с текущего значения прозрачности.
TfgAnimationHelper.FadeOut(ImageBlackWhite, [TfgAnimationOption.StartFromCurrent], 500);
Демонстрация
Отмена текущей анимации
Если вам нужно остановить текущую анимацию компонента, то используйте метод StopAnimations
.
Окончание анимации
При использовании любого шаблона анимации вы можете передать анонимную функцию, которая будет вызвана в тот момент, когда анимация будет завершена.
TfgAnimationHelper.FadeOut(ImageBlackWhite, [TfgAnimationOption.StartFromCurrent], Duration, procedure begin
TfgToast.Show('Animation is finished');
end);