如何在Dart Flutter中使用onPressed或onTap调用具有多个参数的函数

问题描述

如果我定义了这样的函数

getTimeAndDuration(LatLng origin,LatLng dest) async {
    try {
      http.Response response = await http.get(
        'https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial'
            '&origins=${origin.latitude},${origin.longitude}'
            '&destinations=${dest.latitude},${dest.longitude}'
            '&key=$googleAPIkey'
            '&mode=$_mode',);
      var body = json.decode(response.body);
      mapData = MapData.fromJson(body);
      if (_mode != "Choose Mode") {
        if (mapData.rows[0].elements[0].status.toString() == "OK" &&
            mapData.status.toString() == "OK") {
          setState(() {
            showData = true;
          });
        } else {
          // noAvailbleAlert(context);
        }
      } else {
        // noChooseAlert(context);
      }
      print("Helloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo");
      print(mapData.rows[0].elements[0].duration.text);
      print(mapData.rows[0].elements[0].distance.text);

      return mapData;
    } catch (error) {
      print(error);
    }
  }

我想用这样的按钮来调用它:

Widget goButton() {
    return Container(
        child: FlatButton(
            onpressed: () => getTimeAndDuration(LatLng(origin),LatLng(dest)),color: Colors.red,child: Text(
              "Go",style: TextStyle(color: Colors.white),)));
  }

“ onpressed”语法如何正常调用函数?我无法正常工作。

解决方法

尝试一下:

onPressed: () => getTimeAndDuration(origin,dest)