Skip to 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

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.