CopyPastor

Detecting plagiarism made easy.

Score: 0.8046959042549133; Reported for: String similarity Open both answers

Possible Plagiarism

Plagiarized on 2019-05-06
by NIKHAT SHAIKH

Original Post

Original - Posted on 2017-07-16
by Collin Jackson



            
Present in both answers; Present only in the new answer; Present only in the old answer;

On a button click show dialog as -
showDialog( context: context, builder: (_) => LogoutOverlay(), ); Dialog design with two buttons -
class LogoutOverlay extends StatefulWidget { @override State<StatefulWidget> createState() => LogoutOverlayState(); } class LogoutOverlayState extends State<LogoutOverlay> with SingleTickerProviderStateMixin { AnimationController controller; Animation<double> scaleAnimation; @override void initState() { super.initState(); controller = AnimationController(vsync: this, duration: Duration(milliseconds: 450)); scaleAnimation = CurvedAnimation(parent: controller, curve: Curves.elasticInOut); controller.addListener(() { setState(() {}); }); controller.forward(); } @override Widget build(BuildContext context) { return Center( child: Material( color: Colors.transparent, child: ScaleTransition( scale: scaleAnimation, child: Container( margin: EdgeInsets.all(20.0), padding: EdgeInsets.all(15.0), height: 180.0, decoration: ShapeDecoration( color: Color.fromRGBO(41, 167, 77, 10), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(15.0))), child: Column( children: <Widget>[ Expanded( child: Padding( padding: const EdgeInsets.only( top: 30.0, left: 20.0, right: 20.0), child: Text( "Are you sure, you want to logout?", style: TextStyle(color: Colors.white, fontSize: 16.0), ), )), Expanded( child: Row( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Padding( padding: const EdgeInsets.all(10.0), child: ButtonTheme( height: 35.0, minWidth: 110.0, child: RaisedButton( color: Colors.white, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(5.0)), splashColor: Colors.white.withAlpha(40), child: Text( 'Logout', textAlign: TextAlign.center, style: TextStyle( color: Colors.green, fontWeight: FontWeight.bold, fontSize: 13.0), ), onPressed: () { setState(() { Route route = MaterialPageRoute( builder: (context) => LoginScreen()); Navigator.pushReplacement(context, route); }); }, )), ), Padding( padding: const EdgeInsets.only( left: 20.0, right: 10.0, top: 10.0, bottom: 10.0), child: ButtonTheme( height: 35.0, minWidth: 110.0, child: RaisedButton( color: Colors.white, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(5.0)), splashColor: Colors.white.withAlpha(40), child: Text( 'Cancel', textAlign: TextAlign.center, style: TextStyle( color: Colors.green, fontWeight: FontWeight.bold, fontSize: 13.0), ), onPressed: () { setState(() { /* Route route = MaterialPageRoute( builder: (context) => LoginScreen()); Navigator.pushReplacement(context, route); */ }); }, )) ), ], )) ], )), ), ), ); } }
I would recommend the [Layouts][1], [Interactivity][2], and [Animation][3] tutorials. The [codelab][4] is also a good way to learn your way around Flutter.
Here's a sketch of how to build your app.
[![screenshot][5]][5]
import 'dart:math' as math; import 'package:meta/meta.dart'; import 'package:flutter/material.dart'; void main() { runApp(new MaterialApp( theme: new ThemeData( canvasColor: Colors.deepPurple, iconTheme: new IconThemeData(color: Colors.white), accentColor: Colors.pinkAccent, brightness: Brightness.dark, ), home: new MyHomePage(), )); } class ProgressPainter extends CustomPainter { ProgressPainter({ @required this.animation, @required this.backgroundColor, @required this.color, }) : super(repaint: animation); /// Animation representing what we are painting final Animation<double> animation; /// The color in the background of the circle final Color backgroundColor; /// The foreground color used to indicate progress final Color color; @override void paint(Canvas canvas, Size size) { Paint paint = new Paint() ..color = backgroundColor ..strokeWidth = 5.0 ..strokeCap = StrokeCap.round ..style = PaintingStyle.stroke; canvas.drawCircle(size.center(Offset.zero), size.width / 2.0, paint); paint.color = color; double progressRadians = (1.0 - animation.value) * 2 * math.PI; canvas.drawArc( Offset.zero & size, math.PI * 1.5, -progressRadians, false, paint); } @override bool shouldRepaint(ProgressPainter other) { return animation.value != other.animation.value || color != other.color || backgroundColor != other.backgroundColor; } } class MyHomePage extends StatefulWidget { _MyHomePageState createState() => new _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin { List<IconData> icons = <IconData>[ Icons.alarm, Icons.access_time, Icons.hourglass_empty, Icons.timer, ]; AnimationController _controller; String get timeRemaining { Duration duration = _controller.duration * _controller.value; return '${duration.inMinutes} ${(duration.inSeconds % 60) .toString() .padLeft(2, '0')}'; } @override void initState() { super.initState(); _controller = new AnimationController( vsync: this, duration: const Duration(seconds: 12), ) ..reverse(from: 0.4); } Widget build(BuildContext context) { ThemeData themeData = Theme.of(context); return new Scaffold( body: new Padding( padding: const EdgeInsets.all(10.0), child: new Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: <Widget>[ new Row( mainAxisAlignment: MainAxisAlignment.start, children: icons.map((IconData iconData) { return new Container( margin: new EdgeInsets.all(10.0), child: new IconButton( icon: new Icon(iconData), onPressed: () { // TODO: Implement }), ); }).toList(), ), new Expanded( child: new Align( alignment: FractionalOffset.center, child: new AspectRatio( aspectRatio: 1.0, child: new Stack( children: <Widget>[ new Positioned.fill( child: new AnimatedBuilder( animation: _controller, builder: (BuildContext context, Widget child) { return new CustomPaint( painter: new ProgressPainter( animation: _controller, color: themeData.indicatorColor, backgroundColor: Colors.white, ), ); } ), ), new Align( alignment: FractionalOffset.center, child: new Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, crossAxisAlignment: CrossAxisAlignment.center, children: <Widget>[ new Text( 'Label', style: themeData.textTheme.subhead), new AnimatedBuilder( animation: _controller, builder: (BuildContext context, Widget child) { return new Text( timeRemaining, style: themeData.textTheme.display4, ); } ), new Text('+1', style: themeData.textTheme.title), ], ), ), ], ), ), ), ), new Container( margin: new EdgeInsets.all(10.0), child: new Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: <Widget>[ new IconButton(icon: new Icon(Icons.delete), onPressed: () { // TODO: Implement delete }), new FloatingActionButton( child: new AnimatedBuilder( animation: _controller, builder: (BuildContext context, Widget child) { return new Icon( _controller.isAnimating ? Icons.pause : Icons.play_arrow ); }, ), onPressed: () { if (_controller.isAnimating) _controller.stop(); else { _controller.reverse( from: _controller.value == 0.0 ? 1.0 : _controller .value, ); } }, ), new IconButton( icon: new Icon(Icons.alarm_add), onPressed: () { // TODO: Implement add time }), ], ), ), ], ), ), ); } }

[1]: https://flutter.io/tutorials/layout/ [2]: https://flutter.io/tutorials/interactive/ [3]: https://flutter.io/animations/ [4]: https://codelabs.developers.google.com/codelabs/flutter/index.html#0 [5]: https://i.stack.imgur.com/Y1gKR.png

        
Present in both answers; Present only in the new answer; Present only in the old answer;