gpt4 book ai didi

flutter - 按钮onPressed不会运行该功能

转载 作者:行者123 更新时间:2023-12-03 03:20:14 33 4
gpt4 key购买 nike

我陷入了代码的这一部分。
我为欢迎页面创建了一个文件,为按钮创建了另一个文件。
创建按钮很容易,问题出在onPressed部分。
我创建了一个函数pageNavigation,并尝试在按钮的onPressed部分中调用它。

 pageNavigation(page) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => page),
);
}
但是按钮和欢迎页面位于不同的文件中。 WelcomePage类:
    class WelcomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final height = MediaQuery.of(context).size.height;
final width = MediaQuery.of(context).size.width;

return Scaffold(
body:
Column(
children: [
Button(
height: height,
txt: 'Criar conta agora',
txtStyle: kWhiteButtonTextStyle,
buttonColor: Colors.transparent,
onPressed: pageNavigation(LoginPage());
),
Button(
height: height,
txt: 'Entrar',
txtStyle: kBlackButtonTextStyle,
buttonColor: kWhiteColor,
onPressed: pageNavitation(CreateAccountPage());
),
],
),
);
}
}
因此,我创建了一个名为onPressed的函数变量,并在onPressed按钮文件中对其进行了调用。按钮类:
    class Button extends StatelessWidget implements WelcomePage {
const Button({
Key key,
@required this.height,
@required this.txt,
@required this.txtStyle,
@required this.buttonColor,
@required this.onPressed
}) : super(key: key);

final double height;
final String txt;
final TextStyle txtStyle;
final Color buttonColor;
final Function onPressed,

@override
Widget build(BuildContext context) {
return FlatButton(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
txt,
style: GoogleFonts.rubik(textStyle: txtStyle),
),
],
),
color: buttonColor,
padding: EdgeInsets.only(
top: height * 0.018,
bottom: height * 0.018,
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
onPressed: onPressed,
);
}
}
我认为错误可能出在按钮类中,但我不知道如何解决。

最佳答案

您的onPressed应该看起来像这样:

    onPressed: () => pageNavigation(LoginPage()),
如果您忘记了 () =>,应用程序将导航到第一个路线,即LoginPage此处

关于flutter - 按钮onPressed不会运行该功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63798675/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com