Назад к вопросам
Junior
410
questionbank
Какие жесты можно обрабатывать в Flutter?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Flutter можно обрабатывать следующие жесты с помощью виджетов GestureDetector и других:
-
Нажатия:
onTap: Простое нажатие.onDoubleTap: Двойное нажатие.onLongPress: Долгое нажатие.onTapDown: Нажатие в момент касания экрана.onTapUp: Отпускание после нажатия.onTapCancel: Отмена нажатия.
-
Перетаскивание (Draggable):
onVerticalDragStart: Начало вертикального перетаскивания.onVerticalDragUpdate: Обновление вертикального перетаскивания.onVerticalDragEnd: Конец вертикального перетаскивания.onHorizontalDragStart: Начало горизонтального перетаскивания.onHorizontalDragUpdate: Обновление горизонтального перетаскивания.onHorizontalDragEnd: Конец горизонтального перетаскивания.onPanStart: Начало любого перетаскивания.onPanUpdate: Обновление любого перетаскивания.onPanEnd: Конец любого перетаскивания.
-
Увеличение/уменьшение (Scale):
onScaleStart: Начало масштабирования.onScaleUpdate: Обновление масштабирования.onScaleEnd: Конец масштабирования.
-
Другие жесты:
onForcePressStart: Начало сильного нажатия (поддерживается на некоторых устройствах).onForcePressPeak: Пик сильного нажатия.onForcePressUpdate: Обновление сильного нажатия.onForcePressEnd: Конец сильного нажатия.
Пример использования GestureDetector:
import 'package:flutter/material.dart';
class MyGestureWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {
print('Тап!');
},
onDoubleTap: () {
print('Двойной тап!');
},
onLongPress: () {
print('Долгое нажатие!');
},
child: Container(
color: Colors.blue,
width: 100,
height: 100,
child: Center(
child: Text('Нажми меня'),
),
),
);
}
}