长按时显示对话框,手指向上则弹出对话框

时间:2019-03-27 13:45:16

标签: flutter dialog gesturedetector

我想在用户长按某个项目时显示一个对话框,而在手指向上但无法检测到点击时将其弹出。

我将对话框放在另一个GestureDetector上,并使用其onTapUp属性弹出对话框。

GestureDetector(
 child: studentIcon(index, context),
 onLongPress: () {
   showDialog(
       context: context,
       builder: (context) {
         return GestureDetector(
           onTapUp: (detail) {
             Navigator.pop(context);
           },
           child: DialogDetail(
             index: index,
           ),
         );
       });
 },

我希望在长按手指后弹出对话框。

2 个答案:

答案 0 :(得分:0)

尝试使方法打开对话框。我提供警报对话框代码。

 void _showText(BuildContext context) {
   showDialog(
    context: context,
    barrierDismissible: false,
    builder: (context) {
      return AlertDialog(
        content: Text(
            "User name :${nameEditText.text} \nPassword : ${passwordEditText.text}"),
        actions: <Widget>[
          new FlatButton(
              onPressed: () {
                Navigator.of(context).pop();
              },
              child: new Text("OK"))
        ],
      );
    });
   }
   }

在点击按钮之后。

     child: RaisedButton(
            padding: EdgeInsets.all(15.0),
            onPressed: () {
             _showText(context);
            },
            child: Text(
              "Submit",
              style: TextStyle(fontSize: 15, color: Colors.white),
            ),
            color: Colors.blue,
          ),

答案 1 :(得分:0)

您不能这样做,因为 context 中存在 GestureDetector 问题。 请按照this的回答来实现这个东西。