MenuController constructor

MenuController({
  1. required TickerProvider vsync,
})

Implementation

MenuController({
  required this.vsync,
}) : _animationController = new AnimationController(vsync: vsync) {
  _animationController
    ..duration = const Duration(milliseconds: 300)
    ..addListener(() {
      notifyListeners();
    })
    ..addStatusListener((AnimationStatus status) {
      switch (status) {
        case AnimationStatus.forward:
          state = MenuState.opening;
          break;
        case AnimationStatus.reverse:
          state = MenuState.closing;
          break;
        case AnimationStatus.completed:
          state = MenuState.open;
          break;
        case AnimationStatus.dismissed:
          state = MenuState.closed;
          break;
      }
      notifyListeners();
    });
}