Пакет Flutter, который я создал, не работает - PullRequest
0 голосов
/ 21 июня 2020

Недавно я создал пакет под названием 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 '

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...