Achieve widget sliding while the pointer is pressed down

glissando

Slide across widgets while the pointer is down.

Usage

Wrap your widget in a Glissando.

import 'package:flutter/material.dart';
import 'package:glissando/glissando.dart';

void main() {
  runApp(MaterialApp(
    home: Glissando(
      child: Row(
        children: [
          Listener(
            onPointerDown: (_) => print("1 down"),
            onPointerCancel: (_) => print("1 cancel"),
            onPointerUp: (_) => print("1 up"),
            child: Container(
              color: Colors.red,
              width: 100,
              height: 100,
            ),
          ),
          Listener(
            onPointerDown: (_) => print("2 down"),
            onPointerCancel: (_) => print("2 cancel"),
            onPointerUp: (_) => print("2 up"),
            child: Container(
              color: Colors.blue,
              width: 100,
              height: 100,
            ),
          ),
        ],
      ),
    ),
  ));
}

When you slide from widget A to widget B, widget A will receive a pointer cancel event, while widget B will receive a pointer down event.

When you lift the pointer, the widget that last got the down event will get the pointer up event.

GitHub

View Github

Description of the image

Related Posts