Как реализовать действие смахивания, чтобы переместить цветную плитку в неокрашенную плитку с номером головоломки? - PullRequest
0 голосов
/ 28 февраля 2020

Экран игры-головоломки с числами

Вот мой код .. Я использовал функцию ontap () жеста-детектора для перемещения плитки при нажатии кнопки. Я хочу реализовать функция смахивания, чтобы переместить плитку в неокрашенную часть.

main.dart

 Widget tiles(int i) {
bool isZero = i == 0;
return GestureDetector(
  onTap: (){
    movePosition(i);
 },

  child: ShakeView(
   controller: _shakeController,
    child: Container(

      width: 125,
      height: 100,
      margin: EdgeInsets.all(5.0),
      decoration: BoxDecoration(

        color: isZero ? Colors.white : Color(0xff000080),
        border: Border.all(width: 2.0),
      ),
      child: Center(
        child: Text(
          '$i',
          style: TextStyle(color: Colors.white, fontSize: 25),
        ),
      ),
    ),

  ),
);

}

1 Ответ

0 голосов
/ 28 февраля 2020

Вы на правильном пути с GestureDetector. Используйте свойство onPanUpdate вместо onTap. onPanUpdate принимает такую ​​функцию:

GestureDetector(onPanUpdate: (details) {
  if (details.delta.dx > 0) {
    // detecting swipe right
  }
});

Также ознакомьтесь с этой средней статьей о создании собственного слайдера https://medium.com/@rjstech / building-a-custom-slider-in-flutter-with- gesturedetector-fcdd76224acd

...