Gestures
No Flutter, gestos são interações do usuário com a tela, como toques, deslizes, e gestos de pinch e zoom. Para lidar com gestos em seu aplicativo, você pode usar widgets de gesto e reconhecedores de gesto. Aqui estão alguns dos principais conceitos e widgets relacionados a gestos no Flutter:
1. GestureDetector:
O GestureDetector
é um widget que reconhece vários gestos do usuário e pode conter outros widgets. Ele fornece callbacks para diferentes tipos de gestos, como onTap, onDoubleTap, onLongPress, onVerticalDragUpdate, onScale, etc.
Exemplo de um GestureDetector
com um gesto onTap:
GestureDetector(
onTap: () {
print('Você tocou no widget!');
},
child: Container(
color: Colors.blue,
width: 200,
height: 200,
child: Center(
child: Text('Toque aqui'),
),
),
)
2. InkWell:
O InkWell
é um widget de material design que reage visualmente ao toque do usuário. Ele também é usado para gestos simples como onTap.
InkWell(
onTap: () {
print('Você tocou no InkWell!');
},
child: Container(
width: 200,
height: 50,
child: Center(
child: Text('Toque aqui'),
),
),
)
3. Gesture Recognizers:
Os “reconhecedores de gestos” são objetos que interpretam os gestos do usuário em um widget. Flutter fornece vários reconhecedores de gestos, como onTap
, onDoubleTap
, onLongPress
, onPanUpdate
, onScaleUpdate
, etc.
Exemplo de um reconhecedor de gesto onTap:
GestureDetector(
onTap: () {
print('Você tocou no widget!');
},
child: // Seu conteúdo aqui
)
4. Dismissible:
O Dismissible
é um widget que permite que você deslize um item da tela para removê-lo ou realizar uma ação.
Dismissible(
key: UniqueKey(),
onDismissed: (direction) {
// Ação a ser realizada quando o item é removido
},
child: // Seu conteúdo aqui
)
5. GestureDetector para Gestos Complexos:
Para gestos mais complexos, você pode usar GestureDetector
em conjunto com onPanUpdate
, onScaleUpdate
e outros callbacks para detectar gestos como deslizes em várias direções, rotações e pinch-to-zoom.
GestureDetector(
onPanUpdate: (details) {
// Detectar movimento do dedo na tela
},
onScaleUpdate: (details) {
// Detectar movimento de pinch (zoom)
},
child: // Seu conteúdo aqui
)
Lembre-se de que, ao lidar com gestos, é importante considerar a experiência do usuário e garantir que os gestos se comportem de maneira intuitiva e responsiva. Ao combinar diferentes reconhecedores de gestos e callbacks, você pode criar interfaces do usuário interativas e envolventes em seu aplicativo Flutter.