如何使小部件作为类的输入变量

时间:2019-10-17 14:29:30

标签: flutter

我想将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!
            ));
          }
        )
    );
  }
}

2 个答案:

答案 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)