blob: 1c9f11a2ea0feb93af08e577ed7424f6625960de [file] [log] [blame]
// Copyright 2019 The Flutter team. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/material.dart';
class Scrim extends StatelessWidget {
const Scrim({this.controller});
final AnimationController controller;
@override
Widget build(BuildContext context) {
final Size deviceSize = MediaQuery.of(context).size;
return ExcludeSemantics(
child: AnimatedBuilder(
animation: controller,
builder: (context, child) {
final Color color =
Color(0xFFF0EA).withOpacity(controller.value * 0.87);
final Widget scrimRectangle = Container(
width: deviceSize.width, height: deviceSize.height, color: color);
final bool ignorePointer =
(controller.status == AnimationStatus.dismissed);
final bool tapToRevert =
(controller.status == AnimationStatus.completed);
if (tapToRevert) {
return GestureDetector(
onTap: () {
controller.reverse();
},
child: scrimRectangle,
);
} else if (ignorePointer) {
return IgnorePointer(child: scrimRectangle);
} else {
return scrimRectangle;
}
},
),
);
}
}