我想将Widget
放在类的输入变量中。我能以某种方式做到吗?
class Karta extends StatelessWidget {
final int _index;
final List _list;
final Widget _widget;
Karta(this._index,this._list,this._widget);
@override
Widget build(BuildContext context) {
return Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(8)),
image: DecorationImage(
image: NetworkImage("https://dummyimage.com/1080x337/000/fff"),
fit: BoxFit.fitWidth,
alignment: Alignment.center,
)
),
margin: EdgeInsets.fromLTRB(10, 10, 10, 0),
child: ListTile(
title: Text(list_mainmenu[_index]),
subtitle: Text("bong"),
onTap: () {
Navigator.push(context, MaterialPageRoute(
builder: (context) => _widget(_index), // this gives me error!
));
}
)
);
}
}
答案 0 :(得分:0)
替换
final Widget _widget;
使用
final _widget;
由于Widget
不是一个函数,因此您无法真正调用它。您需要做的就是从代码中删除Widget
。 Dart现在将通过查看您通过的内容来推断其类型。
答案 1 :(得分:0)
您可以使用Widget
,但不能将_index
传递给它。另外,您可以使用自定义窗口小部件来代替Widget
,后者以_index
作为参数
YourWidget
final int _index;
YourWidget(this._index);
Karta
YourWidget widget;
widget(_index)