Sobes.tech
Junior

Que gestos podem ser tratados no Flutter?

sobes.tech IA

Resposta da IA

No Flutter, pode lidar com os seguintes gestos usando widgets como GestureDetector e outros:

  • Toques:

    • onTap: Toque simples.
    • onDoubleTap: Toque duplo.
    • onLongPress: Toque longo.
    • onTapDown: Toque no momento do contacto com a tela.
    • onTapUp: Soltar após o toque.
    • onTapCancel: Cancelar toque.
  • Arrastar (Draggable):

    • onVerticalDragStart: Início do arrasto vertical.
    • onVerticalDragUpdate: Atualização do arrasto vertical.
    • onVerticalDragEnd: Fim do arrasto vertical.
    • onHorizontalDragStart: Início do arrasto horizontal.
    • onHorizontalDragUpdate: Atualização do arrasto horizontal.
    • onHorizontalDragEnd: Fim do arrasto horizontal.
    • onPanStart: Início de qualquer arrasto.
    • onPanUpdate: Atualização de qualquer arrasto.
    • onPanEnd: Fim de qualquer arrasto.
  • Aumentar/diminuir (Escala):

    • onScaleStart: Início do escalonamento.
    • onScaleUpdate: Atualização do escalonamento.
    • onScaleEnd: Fim do escalonamento.
  • Outros gestos:

    • onForcePressStart: Início de uma pressão forte (suportado em alguns dispositivos).
    • onForcePressPeak: Pico de pressão forte.
    • onForcePressUpdate: Atualização da pressão forte.
    • onForcePressEnd: Fim da pressão forte.

Exemplo de uso de GestureDetector:

import 'package:flutter/material.dart';

class MyGestureWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {
        print('Toque!');
      },
      onDoubleTap: () {
        print('Toque duplo!');
      },
      onLongPress: () {
        print('Toque longo!');
      },
      child: Container(
        color: Colors.blue,
        width: 100,
        height: 100,
        child: Center(
          child: Text('Toque-me'),
        ),
      ),
    );
  }
}