DismissDirection
Defines swipe directions allowed for dismissing a SnackBar.
The direction controls which drag gestures can close the snack bar when dismissal is enabled.
Inherits: Enum
Properties
-
DOWN–Allows dismissing only by swiping downward.
-
END_TO_START–Allows dismissing toward the end-to-start reading direction.
-
HORIZONTAL–Allows dismissing by swiping horizontally.
-
NONE–Disables swipe-to-dismiss gestures.
-
START_TO_END–Allows dismissing toward the start-to-end reading direction.
-
UP–Allows dismissing only by swiping upward.
-
VERTICAL–Allows dismissing by swiping vertically.
Examples#
Showcase#
import flet as ft
def showcase_card(direction: ft.DismissDirection) -> ft.Container:
status = ft.Text("Swipe the tile", size=12, color=ft.Colors.ON_SURFACE_VARIANT)
def create_item() -> ft.Dismissible:
return ft.Dismissible(
dismiss_direction=direction,
on_dismiss=lambda _: on_dismiss(),
background=ft.Container(
bgcolor=ft.Colors.GREEN_200,
alignment=ft.Alignment.CENTER_LEFT,
padding=10,
content=ft.Icon(ft.Icons.CHECK, color=ft.Colors.GREEN_900),
),
secondary_background=ft.Container(
bgcolor=ft.Colors.RED_200,
alignment=ft.Alignment.CENTER_RIGHT,
padding=10,
content=ft.Icon(ft.Icons.DELETE, color=ft.Colors.RED_900),
),
content=ft.Container(
height=52,
border_radius=8,
bgcolor=ft.Colors.SURFACE,
border=ft.Border.all(1, ft.Colors.OUTLINE),
alignment=ft.Alignment.CENTER,
content=ft.Text("Dismiss me"),
),
)
def on_dismiss():
slot.content = ft.Container(
height=52,
border_radius=8,
bgcolor=ft.Colors.SURFACE,
border=ft.Border.all(1, ft.Colors.OUTLINE_VARIANT),
alignment=ft.Alignment.CENTER,
content=ft.Text("Dismissed"),
)
status.value = f"Dismissed via {direction.name}"
slot.update()
status.update()
def reset_item(_):
slot.content = create_item()
status.value = "Swipe the tile"
slot.update()
status.update()
slot = ft.Container(content=create_item())
return ft.Container(
width=360,
padding=12,
border=ft.Border.all(1, ft.Colors.RED),
border_radius=10,
bgcolor=ft.Colors.SURFACE_CONTAINER_LOW,
content=ft.Column(
spacing=8,
controls=[
ft.Text(direction.name, weight=ft.FontWeight.BOLD),
status,
slot,
ft.Button("Reset", on_click=reset_item),
],
),
)
def main(page: ft.Page):
page.theme_mode = ft.ThemeMode.DARK
page.horizontal_alignment = ft.CrossAxisAlignment.CENTER
page.appbar = ft.AppBar(title="DismissDirection Showcase")
page.add(
ft.Text("Try swipe directions to see which ones are allowed."),
ft.Row(
wrap=True,
spacing=12,
expand=True,
scroll=ft.ScrollMode.AUTO,
alignment=ft.MainAxisAlignment.CENTER,
controls=[showcase_card(direction) for direction in ft.DismissDirection],
),
)
ft.run(main)
Properties#
DOWN = 'down'
class-attribute
instance-attribute
#
Allows dismissing only by swiping downward.
END_TO_START = 'endToStart'
class-attribute
instance-attribute
#
Allows dismissing toward the end-to-start reading direction.
For left-to-right locales this is right-to-left; for right-to-left locales this is left-to-right.
HORIZONTAL = 'horizontal'
class-attribute
instance-attribute
#
Allows dismissing by swiping horizontally.
Users can drag either left or right to dismiss.
NONE = 'none'
class-attribute
instance-attribute
#
Disables swipe-to-dismiss gestures.
START_TO_END = 'startToEnd'
class-attribute
instance-attribute
#
Allows dismissing toward the start-to-end reading direction.
For left-to-right locales this is left-to-right; for right-to-left locales this is right-to-left.
UP = 'up'
class-attribute
instance-attribute
#
Allows dismissing only by swiping upward.
VERTICAL = 'vertical'
class-attribute
instance-attribute
#
Allows dismissing by swiping vertically.
Users can drag either up or down to dismiss.