Tridimensional Drawer

Tridimensional Drawer is an easy way to create a 3D Perspective drawer, where you can insert any type of widget.

Version 0.1.0 Note

The version 0.1.0 solves the exception caused by the SingleTickerProviderStateMixin.

Demo

drawing

Installing

Add the package to your pubspec.yml file

dependencies:
    tridimensional_drawer: ^0.1.1

Example

Full example available in the example folder.

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

class Example extends StatefulWidget {
  @override
  _ExampleState createState() => _ExampleState();
}

class _ExampleState extends State<Example> {
  final TridimensionalDrawerController controller =
      TridimensionalDrawerController();

  @override
  Widget build(BuildContext context) {
    return TridimensionalDrawer(
      controller: controller,
      mainPage: GestureDetector(
        onTap: () => controller.open(),
        child: MainPage(),
      ),
      drawer: CustomDrawer(),
      backgroundPage: GestureDetector(
        onTap: () => controller.close(),
        child: Container(
          color: Colors.white,
        ),
      ),
    );
  }
}

Hint

If you use a widget containing a Scaffold as the mainPage, try to wrap the body of it inside a SingleChildScrollView, otherwise the rendering of the mainPage could go wrong at the end of the drawer opening animation.

Libraries

tridimensional_drawer
tridimensional_drawer_controller