Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'package:flutter/material.dart';
- void main() {
- runApp(MyApp());
- }
- class MyApp extends StatelessWidget {
- // This widget is the root of your application.
- @override
- Widget build(BuildContext context) {
- return MaterialApp(
- title: 'Flutter Demo',
- theme: ThemeData(
- primarySwatch: Colors.blue,
- ),
- home: MyHomePage(title: 'Flutter Demo Home Page'),
- );
- }
- }
- class MyHomePage extends StatefulWidget {
- MyHomePage({Key key, this.title}) : super(key: key);
- final String title;
- @override
- _MyHomePageState createState() => _MyHomePageState();
- }
- class _MyHomePageState extends State<MyHomePage> {
- double posx = 100.0;
- double posy = 100.0;
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- appBar: AppBar(
- title: Text(widget.title),
- ),
- body: Stack(children: <Widget>[
- GestureDetector(
- onTap: onGreenClick,
- onTapDown: (TapDownDetails details) => onTapDown(context, details),
- child: Container(
- color: Colors.green,
- width: 400,
- height: 400,
- ),
- ),
- GestureDetector(
- onTapDown: (TapDownDetails details) => onTapDown(context, details),
- onTap: () {
- print('red clicked.');
- onGreenClick();
- },
- child: Container(
- color: Colors.red,
- width: 200,
- height: 200,
- ),
- ),
- ]),
- );
- }
- void onGreenClick()
- {
- print("Green clicked");
- }
- void onTapDown(BuildContext context, TapDownDetails details) {
- print('${details.globalPosition}');
- final RenderBox box = context.findRenderObject();
- final Offset localOffset = box.globalToLocal(details.globalPosition);
- setState(() {
- posx = localOffset.dx;
- posy = localOffset.dy;
- });
- if (posx < 100.0 && posy < 100.0) onGreenClick();
- }
- }
Add Comment
Please, Sign In to add comment