overlapping_panels 0.0.2 icon indicating copy to clipboard operation
overlapping_panels: ^0.0.2 copied to clipboard

Inspired by Discord's mobile app navigation. Add left and right panels to your app with gestures to reveal panels and callbacks to listen for reveals.

Overlapping Panels Pub #

Add Discord-like navigation to your app. Demo project here: overlapping_panels_demo

Demo

TODO #

This widget does not support navigation events yet. So pressing the back button, does not slide the main panel back into view. This feature will be implemented in the nearest future.

Usage #

Simple and straight to the point. Just provide usual widgets for all panels:

class _MyHomePageState extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return Stack(
      children: [
        OverlappingPanels(
          // Using the Builder widget is not required. You can pass your widget directly. But to use `OverlappingPanels.of(context)` you need to wrap your widget in a Builder
          left: Builder(builder: (context) {
            return const LeftPage();
          }),
          right: Builder(
            builder: (context) => const RightPage(),
          ),
          main: Builder(
            builder: (context) {
              return const MainPage();
            },
          ),
          onSideChange: (side) {
            setState(() {
              if (side == RevealSide.main) {
                // hide something
              } else if (side == RevealSide.left) {
                // show something
              }
            });
          },
        ),
      ],
    );
  }
}

To be able to reveal a panel with the tap of a button, for example, do:

IconButton(
  icon: const Icon(Icons.menu),
  onPressed: () {
    // This is the main point
    OverlappingPanels.of(context)?.reveal(RevealSide.left);
  },
)
21
likes
120
pub points
60%
popularity

Publisher

verified publisher icondegreat.co.uk

Inspired by Discord's mobile app navigation. Add left and right panels to your app with gestures to reveal panels and callbacks to listen for reveals.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (LICENSE)

Dependencies

flutter

More

Packages that depend on overlapping_panels