drag_down_to_pop 1.0.0 copy "drag_down_to_pop: ^1.0.0" to clipboard
drag_down_to_pop: ^1.0.0 copied to clipboard

A page transition which supports drag-down-to-pop gesture.

example/lib/main.dart

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

void main() => runApp(
      MaterialApp(
        home: FirstPage(),
      ),
    );

class FirstPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('First Page'),
      ),
      body: Center(
        child: FlatButton(
          child: Text('Next page'),
          textColor: Colors.white,
          color: Colors.blue,
          onPressed: () {
            Navigator.push(
              context,
              ImageViewerPageRoute(builder: (context) => SecondPage()),
            );
          },
        ),
      ),
    );
  }
}

class ImageViewerPageRoute extends MaterialPageRoute {
  ImageViewerPageRoute({required WidgetBuilder builder})
      : super(builder: builder, maintainState: false);

  @override
  Widget buildTransitions(BuildContext context, Animation<double> animation,
      Animation<double> secondaryAnimation, Widget child) {
    return const DragDownToPopPageTransitionsBuilder()
        .buildTransitions(this, context, animation, secondaryAnimation, child);
  }

  @override
  bool canTransitionFrom(TransitionRoute previousRoute) {
    return false;
  }

  @override
  bool canTransitionTo(TransitionRoute nextRoute) {
    return false;
  }
}

class SecondPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      child: Container(
        child: Image.network(
          'https://ww4.sinaimg.cn/bmiddle/5c9763c0jw1dg9c1if6bjj.jpg',
        ),
      ),
      onTap: () {
        Navigator.maybePop(context);
      },
    );
  }
}
28
likes
130
pub points
72%
popularity

Publisher

unverified uploader

A page transition which supports drag-down-to-pop gesture.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter

More

Packages that depend on drag_down_to_pop