Как сделать так, чтобы FAB отображался в диалоге? - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь отображать FAB рядом с диалоговым окном, когда он отображается. Диалог отображается при нажатии FAB. В настоящее время FAB находится за черной рамкой, когда отображается диалог. Я пробовал использовать высоту и так далее. Пожалуйста, дайте мне совет, как это сделать.

Экран: enter image description here Код:

@override
  Widget build(BuildContext context) {
    return FloatingActionButton(
      elevation: 10.0,
      highlightElevation: 10.0,
      backgroundColor: constant.colorPrimary,
      child: AnimatedBuilder(
        animation: _animationController,
        builder: (BuildContext context, Widget child) {
          return Transform(
            transform:
                Matrix4.rotationZ(_animationController.value * 0.5 * math.pi),
            alignment: FractionalOffset.center,
            child: Icon(
                _animationController.isDismissed ? Icons.add : Icons.close),
          );
        },
      ),
      onPressed: () async {
        if (_animationController.isDismissed) {
          _animationController.forward();
        } else {
          _animationController.reverse();
        }

        await showGeneralDialog(
                barrierColor: Colors.black.withOpacity(0.5),
                transitionBuilder: (context, a1, a2, widget) {
                  return Transform.scale(
                    scale: a1.value,
                    child: Opacity(
                      opacity: a1.value,
                      child: AlertDialog(
                        shape: OutlineInputBorder(
                            borderRadius: BorderRadius.circular(16.0)),
                        title: Text('Hello!!'),
                        content: Text('How are you?'),
                      ),
                    ),
                  );
                },
                transitionDuration: Duration(milliseconds: 200),
                barrierDismissible: true,
                barrierLabel: '',
                context: context,
                // ignore: missing_return
                pageBuilder: (context, animation1, animation2) {})
            .then((val) {
          if (_animationController.isDismissed) {
            _animationController.forward();
          } else {
            _animationController.reverse();
          }
        });
      },
    );
  }
...