showTopTutorialOnWidget method

void showTopTutorialOnWidget (BuildContext context, GlobalKey<State<StatefulWidget>> globalKey, Color primaryColor, VoidCallback positiveCallback, String title, String subtitle, String positiveBtn, { LineHorizontalPosition lineHorizontalPosition, Widget childBoxWidget, bool showLine: true, double lineHeight: 7.0, Widget circleWidget, bool barrierDismissable: true })

Implementation

static void showTopTutorialOnWidget(
    BuildContext context,
    GlobalKey globalKey,
    Color primaryColor,
    VoidCallback positiveCallback,
    String title,
    String subtitle,
    String positiveBtn,
    {
      LineHorizontalPosition lineHorizontalPosition,
      Widget childBoxWidget,
      bool showLine = true,
      double lineHeight = 7.0,
      Widget circleWidget,
      bool barrierDismissable = true,
    }
  ) {
  try {
    final box = globalKey.currentContext.findRenderObject() as RenderBox;
    Rect rect =  box.localToGlobal(Offset.zero) & box.size;
    showGeneralDialog(
      context: context,
      pageBuilder: (BuildContext buildContext, Animation<double> animation,
          Animation<double> secondaryAnimation) {
        return Scaffold(
          backgroundColor: Colors.transparent,
          body: SafeArea(
            child: Builder(
                builder: (BuildContext context) {
                  return Stack(
                    children: <Widget>[
                      _invisibleWidget(rect),
                      // CHILD
                      _topIntroductionWidget(
                          rect,
                          context,
                          primaryColor,
                          title,
                          subtitle,
                          positiveBtn,
                          positiveCallback,
                          showLine,
                          lineHeight,
                          lineHorizontalPosition: lineHorizontalPosition,
                          childBoxWidget: childBoxWidget,
                          circleWidget: circleWidget,
                      ),
                    ],
                  );
                }
            ),
          ),
        );
      },
      barrierDismissible: barrierDismissable,
      barrierLabel: MaterialLocalizations
          .of(context)
          .modalBarrierDismissLabel,
      transitionDuration: const Duration(milliseconds: 150),
    );
  } catch (e) {
    print("ERROR $e");
  }
}