在 Function 中添加两个到一个按钮 Flutter

Posted

技术标签:

【中文标题】在 Function 中添加两个到一个按钮 Flutter【英文标题】:Add two in Function to a button Flutter 【发布时间】:2021-10-05 03:14:51 【问题描述】:

如何在一个按钮上添加两个功能? 我有一个向服务器发送请求的按钮,我想在发送请求后添加一个对话框......我试过这个:

onPressed: () 
                _makePostRequest();
                showAlertDialog(context);
              ,

但还是不行……

邮编:

     _makePostRequest() async 
    final url = Uri.parse('http://127.0.0.1/API');
    final headers = "Content-type": "application/json";
    final json = '"id": "1", "status": "1"';
    final response = await post(url, headers: headers, body: json);
    final statusCode = response.statusCode;
    final body = response.body;
  

显示对话框代码:

    void showAlertDialog(BuildContext context) 
  Widget okButton = TextButton(
    child: Text("OK"),
    onPressed: () ,
  );

  AlertDialog alert = AlertDialog(
    title: Text("PMZ Label Print"),
    content: Text("Label is printing..."),
    actions: [
      okButton,
    ],
  );

  showDialog(
    context: context,
    builder: (BuildContext context) 
      return alert;
    ,
  );

【问题讨论】:

【参考方案1】:

试试下面的代码

你的按钮

onPressed:()
 _makePostRequest();

您的 API 调用

_makePostRequest() async 
final url = Uri.parse('http://127.0.0.1/API');
final headers = "Content-type": "application/json";
final json = '"id": "1", "status": "1"';
final response = await post(url, headers: headers, body: json);
final statusCode = response.statusCode;
final body = response.body;
//your alert function call
 if (response.statusCode == 200) 
 showAlertDialog(context);

 else 
  print(
    "Error",
   );
 

我已经尝试了上面的代码,我的代码正在运行

【讨论】:

我收到以下错误:未处理的异常:未找到 MaterialLocalizations。 你可以在这里查看我的答案***.com/a/68533647/13997210 查看 API 调用函数并尝试以这种格式调用 API,并在 response.statusCode == 200 块中添加你的 showAlert 函数,并在按下按钮时添加你的 API 调用函数跨度> 【参考方案2】:

您只需在onPressed 上添加async

onPressed: ()async 
               await _makePostRequest();
                showAlertDialog(context);
              ,

【讨论】:

【参考方案3】:

_makePostRequest 是 Future 类型,因此您可以使用 2 种方式:

First one:

onPress:()
_makePostRequest().then((v)
 showAlertDialog(context);

);

Second one:

onPress:()await 
 await YourFunction();
showAlertDialog(context);
    

【讨论】:

以上是关于在 Function 中添加两个到一个按钮 Flutter的主要内容,如果未能解决你的问题,请参考以下文章

将单击功能添加到 Jquery DataTable 中的两个按钮

等待QML界面中两个按钮被点击

我无法将按钮添加到弹出框

如何在 JQuery 数据表的每一行中添加多个按钮以及如何在它们上应用事件

如何将 onclick 操作添加到重力表单单选按钮字段

如何使用 Jquery 将光标聚焦在两个括号(括号)之间?