Недавно я создал пакет под названием swipedetectorplus и опубликовал его на pub.dev как пакет. Однако после публикации, когда я импортировал его в один из своих проектов, чтобы проверить, работает ли он должным образом, он не работал. Я очень благодарен за любую помощь, и ниже приведен код моего пакета.
library swipedetectorplus;
import 'package:flutter/material.dart';
class SwipeDetectorPlus extends StatelessWidget {
SwipeDetectorPlus(
{this.child,
this.onSwipeRight,
this.onSwipeLeft,
this.onSwipeUp,
this.onSwipeDown});
final Widget child;
final Function onSwipeLeft;
final Function onSwipeRight;
final Function onSwipeUp;
final Function onSwipeDown;
@override
Widget build(BuildContext context) {
return GestureDetector(
child: child,
onPanUpdate: (details) {
print('I was called');
if (details.delta.dx > 0) {
print('Initialised');
onSwipeRight;
} else if (details.delta.dx < 0) {
onSwipeLeft;
} else if (details.delta.dy > 0) {
onSwipeUp;
} else if (details.delta.dy < 0) {
onSwipeDown;
}
},
);
}
}
Вот код, который я использовал для его тестирования и, к сожалению, не работает:
import 'package:flutter/material.dart';
import 'package:swipedetectorplus/swipedetectorplus.dart';
void main() => runApp(TestApp());
class TestApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: SwipeDetectorPlus(
onSwipeRight: () {
print('Swiped Right');
},
onSwipeLeft: () {
print('Swiped Left');
},
onSwipeUp: () {
print('Swiped Up');
},
onSwipeDown: () {
print('Swiped Down');
},
child: Container(
height: 50.0,
width: 50.0,
color: Colors.red,
),
),
),
),
);
}
}
Спасибо так много, и я действительно ценю любую помощь, которую я получаю!
Обновление: я попытался запустить его в виджете с отслеживанием состояния ... Я также попросил его: print('Called')
когда он был инициализирован в самой внешней библиотеке и фактически он вызывается всякий раз, когда я удерживаю и перетаскиваю курсор по экрану. Однако теперь я недоумеваю, почему он все еще не работает.
Обновление: я также попросил его распечатать что-то внутри файла внешней библиотеки, когда я проводил пальцем влево и вправо! Он работает так, как ожидалось, так что на самом деле это не проблема с моим пакетом, который я чувствую ... Это потому, что, когда я прошу его print('Right')
, когда я смахиваю прямо внутри самого файла внешней библиотеки, он работает, как ожидалось, и печатает 'Right '