此问题在此处已有答案:
Flutter - Argument of type function can't be assigned to the parameter of type void function()
(2个答案)
19小时前关门了。
我在Flutter中使用Google和Phone创建了一个FireBase签名,需要两个按钮,因此我创建了一个函数,并在参数中传递了一个函数,以在OnTap上为Inkwell设置,这对于不同的传递函数会有不同的工作方式,但有一个错误。
这是我的按钮小部件
Widget buttonItem(
String imagepath, String buttonName, double size, Function Tap) {
return InkWell(
onTap: Tap, //Here its showing error IDE not allowing
child: Container(
width: MediaQuery.of(context).size.width - 60,
height: 60,
child: Card(
color: Colors.black,
elevation: 8,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15),
side: BorderSide(width: 1, color: Colors.grey)),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
SvgPicture.asset(
imagepath,
height: size,
width: size,
),
SizedBox(
width: 15,
),
Text(
buttonName,
style: TextStyle(
color: Colors.white,
fontSize: 17,
),
),
],
),
),
),
);
}
这里是参数传递。
buttonItem("assets/google.svg", "Continue with Google", 25,
() async {
await authClass.googleSignIn(context);
}),
SizedBox(
height: 15,
),
buttonItem("assets/phone.svg", "Continue with Phone", 25, () {}),
SizedBox(
height: 15,
),
1条答案
按热度按时间1zmg4dgp1#
buttonItem中没有设置墨水池函数的类型,只需要将类型
Function Tap
定义为void Function() Tap.
即可那就试试用这个