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