Skip to main content

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.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.horizontal_alignment = ft.CrossAxisAlignment.CENTER

page.appbar = ft.AppBar(title="DismissDirection Showcase")
page.add(
ft.SafeArea(
content=ft.Column(
controls=[
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
],
),
],
),
)
)


if __name__ == "__main__":
ft.run(main)

Properties

DOWNclass-attributeinstance-attribute

Allows dismissing only by swiping downward.

END_TO_STARTclass-attributeinstance-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.

HORIZONTALclass-attributeinstance-attribute

Allows dismissing by swiping horizontally.

Users can drag either left or right to dismiss.

NONEclass-attributeinstance-attribute

Disables swipe-to-dismiss gestures.

START_TO_ENDclass-attributeinstance-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.

UPclass-attributeinstance-attribute

Allows dismissing only by swiping upward.

VERTICALclass-attributeinstance-attribute

Allows dismissing by swiping vertically.

Users can drag either up or down to dismiss.