我在flutter中制作了一个可重用的小部件。 这是一个列表项,但是当我按它时,它应该导航到应用程序中的另一个屏幕。 问题是,我希望列表项的标题(widget.title)与CupertinoNavigationBar相同。 我试图像在官方文档中那样传递它,但出现类似以下错误:期望2个参数,但得到1个。 请帮助我...
这是代码:
class Elem extends StatefulWidget {
final String imagine;
final String titlu;
final String subtitlu;
final String tip;
final String link;
const Elem(
{Key key, this.imagine, this.titlu, this.subtitlu, this.tip, this.link})
: super(key: key);
@override
_StatefulStateCupertinoTwo createState() => _StatefulStateCupertinoTwo();
}
class _StatefulStateCupertinoTwo extends State<Elem> {
@override
Widget build(BuildContext context) {
return ListTile(
leading: ClipRRect(
child: Image.network(
widget.imagine,
),
borderRadius: BorderRadius.circular(10.0),
),
title: Text(widget.titlu, style: TextStyle(color: Colors.white)),
subtitle: Text(widget.subtitlu, style: TextStyle(color: Colors.grey)),
trailing: Icon(
CupertinoIcons.add_circled_solid,
color: CupertinoColors.systemBlue,
size: 30,
),
onTap: () {
Navigator.push(context, CupertinoPageRoute(builder: (context) => Detaile(
widget.titlu,
)));
},
);
}
}
class Detaile extends StatelessWidget{
final String title;
// receive data from the FirstScreen as a parameter
Detaile(String titlu, {Key key, @required this.title}) : super(key: key);
@override
Widget build(BuildContext context) {
// TODO: implement build
return CupertinoPageScaffold(
navigationBar: const CupertinoNavigationBar(
middle: Text(title),
),
child: Text('Hello'),
);
},
}
此外,这是我遇到的一些错误:
位置参数过多:预期为0,但找到1。 尝试删除多余的参数。
位置参数过多:预期有2个,但发现1个。 尝试删除多余的参数。
未定义名称“ titlu”。 尝试将名称更正为已定义的名称,或定义名称。
常量创建的参数必须是常量表达式。 尝试使该参数成为有效常量,或使用“ new”调用构造函数。
对该常量表达式求值会引发异常。