Свайп по тексту в Flutter можно реализовать с использованием виджета GestureDetector
.
Для начала, необходимо создать экземпляр GestureDetector
и передать ему в качестве дочернего виджета виджет Text
, в котором будет отображаться текст, по которому будет осуществляться свайп.
GestureDetector( child: Text('Swipe me'), onHorizontalDragUpdate: (DragUpdateDetails details) { // Обработка свайпа влево или вправо }, ),
В колбэке onHorizontalDragUpdate
мы получаем информацию о деталях свайпа, такие как смещение (delta.dx
) и границы свайпа (details.primaryDelta
). Мы можем использовать эти данные для определения направления свайпа и принятия соответствующих действий.
onHorizontalDragUpdate: (DragUpdateDetails details) { if (details.delta.dx > 0) { // Свайп вправо } else { // Свайп влево } },
Далее, внутри условий можно разместить логику, соответствующую свайпу влево или вправо. Например, мы можем изменить состояние виджета и обновить текст.
String text = 'Swipe me'; onHorizontalDragUpdate: (DragUpdateDetails details) { if (details.delta.dx > 0) { setState(() { text = 'Swiped right'; }); } else { setState(() { text = 'Swiped left'; }); } },
Теперь, при свайпе влево по тексту, значение переменной text
будет изменяться на "Swiped left", а при свайпе вправо - на "Swiped right".
Обратите внимание, что для использования GestureDetector
и обновления состояния виджета с помощью setState
необходимо, чтобы данный виджет был состояний, то есть он должен быть потомком класса StatefulWidget
.