An Interest In:
Web News this Week
- March 22, 2024
- March 21, 2024
- March 20, 2024
- March 19, 2024
- March 18, 2024
- March 17, 2024
- March 16, 2024
GestureDetector Widget
GestureDetector Widget
GestureDetector widget'n dier herhangi bir widget'n etrafna sarabilir ve bu alt widget'n kullancdan gelen etkileimi dinlemesini salayabilirsiniz.
GestureDetector'n yalnzca iki argumana ihtiyac vardr: bir widget (child) ve bir harekete karlk gelen bir callback.
te bir rnek:
GestureDetector( onTap: () => print("tapped!"), child: Text("Tap Me"),);
onTap gibi iletilebilecek 30 farkl argumandan bazlar:
onTap
onTapUp
onTapDown
onLongPress
onDoubleTap
onHorizontalDragStart
onVerticalDragDown
onPanDown
onScaleStart
onTapUp
, globalPosition'
veya dokunulan ekrandaki konumu ortaya karan TapUpDetails
nesnesinin bir rneini (instance) geri iletir.
Srkleme ile ilgili olanlar gibi daha karmak hareketlerden bazlar, daha ilgin zelliklere sahiptir. Srklemenin balad saat, balad konum, bittii konum ve srklemenin hz hakknda ayrntl bilgi alabilirsiniz. Bu, srklemeleri yn, hz vb. temelinde deitirmenize olanak tanr.
body: GestureDetector( onDoubleTap: () { setState(() { widget.settings.selectedTemperature = widget.settings.selectedTemperature == TemperatureUnit.celsius ? TemperatureUnit.celsius : TemperatureUnit.fahrenheit; }); }, onVerticalDragUpdate: (DragUpdateDetails v) => _handleDragEnd(v, context), child: ColorTransitionBox()...
GestureDetector.onVerticalDragUpdate esine bir bamsz deiken olarak iletilen callback, parmanz ekranda yukar veya aa srklerken tekrar tekrar arlr ve DragUpdateDetails snfnn rnei olan bir argman olarak srkle hakknda bilgi iletilir.
void _handleDragEnd(DragUpdateDetails d, BuildContext context) { double screenHeight = MediaQuery.of(context).size.height; //MediaQuery'ile ekran ykseklii elde edilir. double dragEnd = d.globalPosition.dy; //globalPosition.dy, onVerticalDragUpdate arldnda iaretinin(pointer) bulunduu ekrann y eksenindeki konumdur. double percentage = (dragEnd / screenHeight) * 100.0; //Konumu 0 ile 100 arasnda bir sayya dntrmek iin nceki iki sayy kullanr (ekran yksekliinin %100'n temsil eder) int scaleToTimesOfDay = (percentage ~/ 12).toInt(); //Gnn saatini semek iin 0 tabanl bir listeyle altmz iin bu sayy 0-7 leine dntrr ve sekiz seenek vardr if (scaleToTimesOfDay > 7) scaleToTimesOfDay = 7; _handleStateChange(scaleToTimesOfDay);}
Resource: Flutter in Action chapter 5
Original Link: https://dev.to/gulsenkeskin/gesturedetector-widget-31n0
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To