这是我的代码:
import 'package:flutter/material.dart';
import 'package:take3/constants.dart';
import 'package:take3/screens/login/login_screen.dart';
import 'package:take3/screens/signup/signup_screen.dart';
class RoundedButton extends StatelessWidget {
final String text;
final Function press; **//this is the variable!!!**
final Color color, textColor;
const RoundedButton({
super.key,
required this.text,
required this.press,
this.color = kPrimaryColor,
this.textColor = Colors.white,
});
@override
Widget build(BuildContext context) {
Size size = MediaQuery.of(context).size;
return Container(
margin: EdgeInsets.symmetric(vertical: 10),
width: size.width * 0.8,
child: ClipRRect(
borderRadius: BorderRadius.circular(29),
child: TextButton(
style: TextButton.styleFrom(
backgroundColor: color,
padding: EdgeInsets.symmetric(vertical: 20, horizontal: 40),
),
onPressed: (press) {} **// here is the issue!!!**
),
);
},
child: Text(
text,
style: TextStyle(color: textColor),
),
),
),
);
}
}
字符串
在“onPressed”中写最后一个函数“press”的正确方法是什么?
请帮帮忙,我在挣扎,🥺
我试着写“新闻”,但它没有工作。
注意:我正在使用“Android Studio Giraffe| 2022.3.1 Patch 2”on MacOS. flutter version:flutter 3.13.9 dart version:3.1.5
1条答案
按热度按时间ax6ht2ek1#
有很多方法可以调用
TextButton
的函数,尝试其中一种方法。字符串
onPressed: () => press(),
个onPressed: () {press();},
个onPressed: press,
个第三种方法是只有当函数与
onPressed
具有相同的类型时。在TextButton
中,onPressed
具有Function()?
类型,并且您的函数类型也必须是Function()?
。(这仅适用于第三种方法)TextButton的完整代码示例:
型
更多示例和说明请参见文档:https://api.flutter.dev/flutter/material/TextButton-class.html