Flutter onPressed Function
125
Solution 1
Change Function to VoidCallback
class CircleButton extends StatelessWidget {
CircleButton({required this.icon, required this.onPressed});
final IconData icon;
final VoidCallback onPressed; //Change Function to VoidCallback
@override
Widget build(BuildContext context) {
return ElevatedButton(
onPressed: onPressed,
child: Icon(icon),
style: ElevatedButton.styleFrom(
elevation: 6.0,
primary: Color(0xFF4C4F5E),
shape: CircleBorder(),
padding: EdgeInsets.all(15),
),
);
}
}
Solution 2
The Function
type is actually a dynamic Function
type.
The ElevatedButton
expects a void Function
to its onPressed
method, which there is actually a type that is a typedef
for it: VoidCallback
So, replace your Function onPressed
with VoidCallback onPressed
.
Comments
-
Yash kolte 10 months
Error in onPressed Trying to pass onPressed Function but getting Error.
Error - The argument type 'Function' can't be assigned to the parameter type 'void Function()?'.
class CircleButton extends StatelessWidget { CircleButton({required this.icon, required this.onPressed}); final IconData icon; final Function onPressed; [![Error][1]][1]//Here @override Widget build(BuildContext context) { return ElevatedButton( child: Icon(icon), onPressed: onPressed, style: ElevatedButton.styleFrom( elevation: 6.0, primary: Color(0xFF4C4F5E), shape: CircleBorder(), padding: EdgeInsets.all(15), ),); }}
-
Yeasin Sheikh over 1 yearDoes this answer your question? The argument type 'Function' can't be assigned to the parameter type 'void Function()?' after null safety
-
Yash kolte over 1 yearThank You for Answer It Worked @YeasinSheikh
-