返回

dart-onTap无法在我在flutter主文件之外创建的小部件中运行

发布时间:2022-04-24 18:49:48 301
# 数据

我有三个文件:一个widget.dart文件,在其中我创建了一个名为WalletItemMenu,另一个data_generator.dart文件,我在其中创建了一个小部件列表,最后是我的主文件main.dart,我在其中使用了WalletItemMenu在GridView的data_generator.dart中创建。

widget.dart

InkWell WalletItemMenu(String titre,String img,MaterialColor? couleur){
  return InkWell(
    child: Container(
      child: Card(
        color: couleur,
        child: InkWell(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              Image.asset(img,height: 80),
              SizedBox(height: 10),
              Text(titre)
            ],
          ),
          onTap: (){print("ok");},
        ),
      ),
    ),
    onTap: (){print("ok");},
  );
}

在data\u generator中。我创建了一个小部件列表锁屏WalletItem菜单
数据生成器. dart

List listeWalletItems(){
  List list = [];
  var el1 = WalletItemMenu("Achat des unités",Ozangue_porte_monaie,Colors.yellow);
  list.add(el1);
  var el2 = WalletItemMenu("Transfert de crédit",Ozangue_porte_monaie,Colors.yellow);
  list.add(el2);
  var el3 = WalletItemMenu("Achat article",Ozangue_porte_monaie,Colors.yellow);
  list.add(el3);
  var el4 = WalletItemMenu("Echange d'argent",Ozangue_porte_monaie,Colors.yellow);
  list.add(el4);
  return list;
}

在主文件中,我试图创建一个包含WalletItemMenu我事先在data_generator.dart中创建的。
main.dart

class MenuPorteMonaiePage extends StatefulWidget{

  @override
  _MenuPorteMonaiePageState createState() => _MenuPorteMonaiePageState();
}

class _MenuPorteMonaiePageState extends State{

  List menus = [];

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    menus = listeWalletItems();
  }

  @override
  Widget build(BuildContext context){
    return Scaffold(
      backgroundColor: Colors.white,
      body: SingleChildScrollView(
              child: Container(
                height: 500,
                child: GridView.builder(
                  itemCount: menus.length,
                  gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
                      crossAxisCount: 2,
                  ),
                  itemBuilder: (BuildContext context,int index){
                    return menus[index];
                  },
                ),
              ),
            )
    );
  }

问题是onTap不起作用。我怎样才能解决这个问题?提前谢谢。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像