Skip to main content

AnimatedSwitcher

A control that by default does a cross-fade between a new control and the control previously set on the AnimatedSwitcher as a content.

Examples

Live example

Animated switching between two containers with scale effect

import flet as ft

def main(page: ft.Page):

c1 = ft.Container(
ft.Text("Hello!", style=ft.TextThemeStyle.HEADLINE_MEDIUM),
alignment=ft.alignment.center,
width=200,
height=200,
bgcolor=ft.colors.GREEN,
)
c2 = ft.Container(
ft.Text("Bye!", size=50),
alignment=ft.alignment.center,
width=200,
height=200,
bgcolor=ft.colors.YELLOW,
)
c = ft.AnimatedSwitcher(
c1,
transition=ft.AnimatedSwitcherTransition.SCALE,
duration=500,
reverse_duration=100,
switch_in_curve=ft.AnimationCurve.BOUNCE_OUT,
switch_out_curve=ft.AnimationCurve.BOUNCE_IN,
)

def animate(e):
c.content = c2 if c.content == c1 else c1
c.update()

page.add(
c,
ft.ElevatedButton("Animate!", on_click=animate),
)

ft.app(target=main)

Properties

duration

The duration, in milliseconds, of the transition from the old content value to the new one. Default is 1000 milliseconds.

reverse_duration

The duration, in milliseconds, of the transition from the new content value to the old one. Default is 1000 milliseconds.

switch_in_curve

The animation curve to use when transitioning in a new content. Property value is AnimationCurve enum with AnimationCurve.LINEAR as default.

switch_out_curve

The animation curve to use when transitioning a previous content out. Property value is AnimationCurve enum with AnimationCurve.LINEAR as default.

transition

An animation type to transition between new and old content. Property value is AnimatedSwitcherTransition enum with the following values:

  • FADE
  • ROTATION
  • CALE

Defaults to FADE.