不能在颤振中使用()(AKA:匿名函数)[重复]
Posted
技术标签:
【中文标题】不能在颤振中使用()(AKA:匿名函数)[重复]【英文标题】:Can't Use () (AKA: Anonymous Function) in flutter [duplicate]不能在颤振中使用()(AKA:匿名函数)[重复] 【发布时间】:2022-01-20 14:24:09 【问题描述】:我刚刚创建了一个全新的项目,遇到了这个问题。
我无法使用按钮,因为我无法为它们分配功能!
这是我的代码:
import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:url_launcher/url_launcher.dart';
class HomePage extends StatefulWidget
@override
_HomePageState createState() => _HomePageState();
class _HomePageState extends State<HomePage>
@override
Widget build(BuildContext context)
return Container(
color: Colors.white,
child: const Align(
alignment: Alignment.center,
child: TextButton(onPressed: () , child: Text('LAUNCH'))), //PROBLEM IS HERE
);
Future<void> _launchUrl(String urlString) async
if (await canLaunch(urlString))
await launch(
urlString,
forceWebView: true,
);
else
Fluttertoast.showToast(
msg: "Try Again",
toastLength: Toast.LENGTH_LONG,
gravity: ToastGravity.CENTER,
timeInSecForiosWeb: 1,
backgroundColor: Colors.red,
textColor: Colors.white,
fontSize: 16.0);
如您所见,我无法将()
提供给TextButton
的onPressed
方法。这是我问题的根源。
Flutter 显示的错误是:
Invalid constant value.
还有我使用的包:
dependencies:
fluttertoast: ^8.0.8
url_launcher: ^6.0.17
animated_splash_screen: ^1.1.0
【问题讨论】:
请参阅我在 ***.com/a/69214531 上的说明:允许 lambdas 成为const
不是免费的。
【参考方案1】:
要解决此问题,请删除 align 前面的 const
。
从这里:
child: const Align(
alignment: Alignment.center,
child: TextButton(onPressed: () , child: Text('LAUNCH'))),
到这里:
child: Align(
alignment: Alignment.center,
child: TextButton(onPressed: () , child: Text('LAUNCH'))),
【讨论】:
以上是关于不能在颤振中使用()(AKA:匿名函数)[重复]的主要内容,如果未能解决你的问题,请参考以下文章