mcSukhi

60794218

May 21st, 2020
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. import 'package:flutter/material.dart';
  2.  
  3. void main() {
  4. runApp(MyApp());
  5. }
  6.  
  7. class MyApp extends StatelessWidget {
  8. // This widget is the root of your application.
  9. @override
  10. Widget build(BuildContext context) {
  11. return MaterialApp(
  12. title: 'Flutter Demo',
  13. theme: ThemeData(
  14. primarySwatch: Colors.blue,
  15. ),
  16. home: MyHomePage(title: 'Flutter Demo Home Page'),
  17. );
  18. }
  19. }
  20.  
  21. class MyHomePage extends StatefulWidget {
  22. MyHomePage({Key key, this.title}) : super(key: key);
  23. final String title;
  24. @override
  25. _MyHomePageState createState() => _MyHomePageState();
  26. }
  27.  
  28. class _MyHomePageState extends State<MyHomePage> {
  29. double posx = 100.0;
  30. double posy = 100.0;
  31.  
  32. @override
  33. Widget build(BuildContext context) {
  34. return Scaffold(
  35. appBar: AppBar(
  36. title: Text(widget.title),
  37. ),
  38. body: Stack(children: <Widget>[
  39. GestureDetector(
  40. onTap: onGreenClick,
  41. onTapDown: (TapDownDetails details) => onTapDown(context, details),
  42. child: Container(
  43. color: Colors.green,
  44. width: 400,
  45. height: 400,
  46. ),
  47. ),
  48. GestureDetector(
  49. onTapDown: (TapDownDetails details) => onTapDown(context, details),
  50. onTap: () {
  51. print('red clicked.');
  52. onGreenClick();
  53. },
  54. child: Container(
  55. color: Colors.red,
  56. width: 200,
  57. height: 200,
  58. ),
  59. ),
  60. ]),
  61. );
  62. }
  63.  
  64. void onGreenClick()
  65. {
  66. print("Green clicked");
  67. }
  68. void onTapDown(BuildContext context, TapDownDetails details) {
  69. print('${details.globalPosition}');
  70. final RenderBox box = context.findRenderObject();
  71. final Offset localOffset = box.globalToLocal(details.globalPosition);
  72. setState(() {
  73. posx = localOffset.dx;
  74. posy = localOffset.dy;
  75. });
  76. if (posx < 100.0 && posy < 100.0) onGreenClick();
  77. }
  78. }
Add Comment
Please, Sign In to add comment