swipe_to_action

A widget which can be used to call functions when the wrapped child is dragged or flinged. Only intended to work with horizontal swipes.

Features:

  • Aware of input type (touch, mouse, stylus), allowed types can be passed.
  • Allows calling different functions depending on swipe direction.
  • Allows different backgrounds depending on swipe direction.
  • Allows calling a confirmation function before calling intended function.

Getting Started

Import the package

import 'package:swipe_to_action/swipe_to_action.dart';

And use Swipeable class, for example:

Swipeable(
    key: ValueKey("Some key, required"),
    onSwipe: (direction) {
        if (direction == SwipeDirection.startToEnd) {
            // do something
        } else {
            // do something else
        }
    },
    // Widget to display below.
    // If [secondaryBackground] is defined, only works when swiping from start to end.
    // Optional.
    background: Container(color: Colors.green),
    // Widget to display below if swiping from end to start.
    // Only works if [background] is defined
    // Optional.
    secondaryBackground: Container(color: Colors.teal),
    // Function to call before calling onSwipe. If it returns false,
    // swipe is aborted and onSwipe is not called.
    // Optional.
    confirmSwipe: (direction) async {
        return true;
    },
    // By default swiping works only with touch or stylus. You may alter this
    // by specifying device kinds to use. This is a list of all device kinds.
    allowedPointerKinds = {
      PointerDeviceKind.touch,
      PointerDeviceKind.stylus,
      PointerDeviceKind.invertedStylus,
      PointerDeviceKind.mouse,
      PointerDeviceKind.unknown,
    },

    child: /* required */,
)

All arguments are documented: you may refer to IntelliSense, source code or API docs.

Libraries

swipe_to_action