GestureDetector
GestureDetector({Key key, Widget child, GestureTapDownCallback onTapDown, GestureTapUpCallback onTapUp, GestureTapCallback onTap, GestureTapCancelCallback onTapCancel, GestureTapCallback onDoubleTap, GestureLongPressCallback onLongPress, GestureLongPressUpCallback onLongPressUp, GestureLongPressDragStartCallback onLongPressDragStart, GestureLongPressDragUpdateCallback onLongPressDragUpdate, GestureLongPressDragUpCallback onLongPressDragUp, GestureDragDownCallback onVerticalDragDown, GestureDragStartCallback onVerticalDragStart, GestureDragUpdateCallback onVerticalDragUpdate, GestureDragEndCallback onVerticalDragEnd, GestureDragCancelCallback onVerticalDragCancel, GestureDragDownCallback onHorizontalDragDown, GestureDragStartCallback onHorizontalDragStart, GestureDragUpdateCallback onHorizontalDragUpdate, GestureDragEndCallback onHorizontalDragEnd, GestureDragCancelCallback onHorizontalDragCancel, GestureForcePressStartCallback onForcePressStart, GestureForcePressPeakCallback onForcePressPeak, GestureForcePressUpdateCallback onForcePressUpdate, GestureForcePressEndCallback onForcePressEnd, GestureDragDownCallback onPanDown, GestureDragStartCallback onPanStart, GestureDragUpdateCallback onPanUpdate, GestureDragEndCallback onPanEnd, GestureDragCancelCallback onPanCancel, GestureScaleStartCallback onScaleStart, GestureScaleUpdateCallback onScaleUpdate, GestureScaleEndCallback onScaleEnd, HitTestBehavior behavior, bool excludeFromSemantics: false, DragStartBehavior dragStartBehavior: DragStartBehavior.down })
açıklama
Hareketleri algılayan bir widget.
Kısaca kapsadığı alanı dokunmaya duyarlı hale getirir.
parametreler
GestureDetector({
Key key, // benzersiz anahtar
Widget child, // bir widget
OnTapDown, // kullanıcı ekranla her temas kurduğunda tetiklenir.
onTapUp //Kullanıcı ekrana dokunmayı bıraktığında, onTapUp denir.
onTap //Ekrana kısaca dokunulduğunda, onTap tetiklenir.
onTapCancel // Bir kullanıcı ekrana dokunduğunda ancak Tap'ı tamamlamadığında bu olay tetiklenir.
onDoubleTap // onDoubleTap, ekrana hızlı bir şekilde art arda iki kez dokunulduğunda çağrılır.
onLongPress // Kullanıcı, ekrana 500 milisaniyeden daha uzun süre dokunursa, onLongPress tetiklenir.
onVerticalDragDown // Bir işaretçi ekranla temas ettiğinde ve dikey yönde hareket etmeye başladığında, onVerticalDown adı verilir.
onVerticalDragStart onVerticalDragStart, // işaretçi dikey yönde hareket etmeye başladığında çağrılır.
onVerticalDragUpdate //Bu, ekrandaki işaretçinin konumunda her değişiklik olduğunda çağrılır.
onVerticalDragEnd // Kullanıcı hareket etmeyi durdurduğunda, sürükleme işlemi tamamlanmış sayılır ve bu olay çağrılır.
onVerticalDragCancel //Kullanıcı aniden sürüklemeyi durdurduğunda çağrılır.
onHorizontalDragDown //Kullanıcı / işaretçi ekranla temas ettiğinde ve yatay olarak hareket etmeye başladığında çağrılır.
onHorizontalDragStart // Kullanıcı / işaretçi, ekranla temas etti ve yatay yönde hareket etmeye başladı.
onHorizontalDragUpdate //Yatay / x ekseni üzerindeki işaretçinin konumunda her değişiklik olduğunda çağrılır.
onHorizontalDragEnd //Yatay sürükle işleminin sonunda, bu olaya denir.
onHorizontalDragCancel //onHorizontalDragDown'ı tetikleyen işaretçi başarıyla tamamlanmadığında çağrılır.
onPanDown // Bir işaretçi ekranla temas ettiğinde aranır.
onPanStart // onPanStart, pointer olayı hareket etmeye başladığında ateşlenir.
onPanUpdate //onPanUpdate, işaretçinin konumu her değiştirdiğinde çağrılır.
onPanEnd //Pan tamamlandığında, bu olay çağrılır.
onScaleStart //Bir işaretçi ekranla temas ettiğinde ve 1.0 odak noktası belirlediğinde, bu olaya denir.
onScaleUpdate //Ekranla temas eden işaretçi yeni bir odak noktası belirledi
onScaleEnd // İşaretçi, hareketin sonunu işaret eden ekranla artık temas etmediğinde çağrılır.
onLongPressUp, //Uzun süre bassılınca ekranla iletişim kurmayı durdurur
})
örnek uygulama

import 'package:flutter/material.dart';
void main() => runApp(MyApp());
// boilerplate code
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter',
home: Scaffold(
appBar: AppBar(
title: Text('Flutter'),
),
body: MyWidget(),
),
);
}
}
// widget class
class MyWidget extends StatefulWidget {
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State {
Color textColor = Colors.black;
@override
Widget build(BuildContext context) {
return GestureDetector( // GestureDetector
child: Text(
'Hello world',
style: TextStyle(
fontSize: 30,
color: textColor,
),
),
onTap: () { // onTap
_doSomething();
},
);
}
void _doSomething() {
setState(() {
// have to import 'dart:math' in order to use Random()
int randomHexColor = Random().nextInt(0xFFFFFF);
int opaqueColor = 0xFF000000 + randomHexColor;
textColor = Color(opaqueColor);
});
}
}