Flutter GestureDetector Example – Flutter Tutorial



Flutter’s GestureDetector is a powerful widget that allows you to recognize various types of user interactions with your app. With GestureDetector, you can detect taps, drags, scrolls, and many other user gestures.

To use GestureDetector, you first need to wrap it around the widget that you want to make interactive. For example, if you want to detect taps on an image, you can wrap GestureDetector around the Image widget like this:

GestureDetector(
  onTap: () {
    // Do something when the user taps the image
  },
  child: Image.asset('assets/my_image.png'),
);

In this example, we’ve specified an onTap callback that will be called whenever the user taps on the image. You can also specify other callbacks to detect other types of gestures, like onDoubleTap, onLongPress, onPanStart, onScaleUpdate, and many others.

One of the powerful features of GestureDetector is that it allows you to recognize complex gestures that involve multiple touch points. For example, you can detect a user pinch gesture (i.e. when the user uses two fingers to zoom in or out) using the onScaleUpdate callback:

GestureDetector(
  onScaleUpdate: (ScaleUpdateDetails details) {
    // Do something when the user pinches the widget
  },
  child: MyZoomableWidget(),
);

In this example, we’ve specified an onScaleUpdate callback that will be called whenever the user performs a pinch gesture on MyZoomableWidget.

Another, Flutter GestureDetector Example:

GestureDetector(
      onTap: () {
        setState(() {
          clicked = !clicked; // here must need setState()
        });
      },
      child: Center(child: clicked ? Text("First Text") : Text("Second Text")),
    );

Flutter GestureDetector Widget

GestureDetector

tutorial source code example:

import 'package:flutter/material.dart';
import 'package:syncfusion_flutter_pdfviewer/pdfviewer.dart';

main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(body: HomePage()),
    );
  }
}

class HomePage extends StatefulWidget {
  const HomePage({Key? key}) : super(key: key);

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  bool clicked = false;
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {
        setState(() {
          clicked = !clicked; // here must need setState()
        });
      },
      child: Center(child: clicked ? Text("First Text") : Text("Second Text")),
    );
  }
}
  • Boost WooCommerce Security: Set Up OTP Login in WordPress
    Passwords, while essential for security, can be vulnerable to hacking and breaches. To add an extra layer of protection for your WooCommerce store, consider implementing an OTP (One-Time Password) login. This guide walks you through the process of setting up an OTP login in WordPress for enhanced security. Why Use OTP Login? Enhanced Security: OTPs …

    Read more …

  • How to Create Woocommerce Flutter App for WordPress free
    Absolutely! Let’s break down how to create a WooCommerce Flutter app for your WordPress store. Here’s a comprehensive outline of the process and essential considerations: 1. Setup Your Development Environment 2. Project Structure 3. Dependencies 4. Core Functionality 5. User Interface (UI) and User Experience 6. Additional Features (Optional) Example Code Snippet (Fetching Products) Important …

    Read more …

  • How to Add a Link to Your Facebook Story in 2024
    Facebook Stories have become an integral part of our social media experience, allowing us to share moments and updates with our friends and followers. But did you know that you can also add links to your Facebook Stories? Adding a link to your story can be a powerful way to drive traffic to your website, …

    Read more …

  • Troubleshooting “Failed to download Laravel from dist” Error
    If you encounter the “Failed to download Laravel from dist” error while working with Laravel 10, it is likely due to the absence of the zip extension and unzip/7z commands on your system. This error prevents the successful download of Laravel from the distribution (dist) repository. What causes this error? The error occurs when the …

    Read more …

  • Solutions for “The file is too large for the destination file system” Error on Pendrive
    If you have ever encountered the frustrating error message “The file is too large for the destination file system” when trying to transfer files to your pendrive, don’t worry! There are a few solutions you can try to resolve this issue. 1. Format the Pendrive: One of the easiest ways to fix this error is …

    Read more …

Read also, Flutter Hero Widget Example. and Flutter Transform widget?

Overall, GestureDetector is a very flexible and powerful widget that can help you create highly interactive and engaging user interfaces in your Flutter app.

Leave a Comment