【问题标题】:Flutter Inkwell navigator context not working in CardFlutter Inkwell 导航器上下文在 Card 中不起作用
【发布时间】:2020-09-24 09:40:46
【问题描述】:

我尝试用 Inkwell 制作可触摸卡片,但我的导航器上下文不起作用。
这是我的卡片小部件代码,我不明白为什么它不起作用。感谢您的帮助。

  Widget buildResultCard(data) {
  return Card(
      shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5.0)),
      elevation: 5,
      child: InkWell(
       //this context have issue 
        onTap: () {Navigator.of(context).pushNamed('yol');},
        child: Container(
            child: Center(
                child: Column(
                  children: [
                    SizedBox(height: 20,),


                    Padding(
                      padding: EdgeInsets.fromLTRB(5, 1, 5, 10),
                      child: Text(data['isim'],
                        style:  GoogleFonts.montserrat(color: Colors.blueGrey[700], fontSize: 24 , textStyle: TextStyle(fontWeight: FontWeight.w400)),
                        textAlign: TextAlign.center,
                      ),
                    ),
                    Divider(thickness: 3,),
                    SizedBox(height: 10,),
                    Padding(
                      padding: EdgeInsets.fromLTRB(5, 1, 5, 10),
                      child: Text(data['tarih'],
                        style:  GoogleFonts.montserrat(color: Colors.blueGrey[700], fontSize: 24 , textStyle: TextStyle(fontWeight: FontWeight.w400)),
                        textAlign: TextAlign.center,
                      ),
                    ),
                    SizedBox(height: 10,),
                   
                  ],
                )
            )
        ),
      )
  );
}

这是我使用的身体代码。

body: Container(
          height: double.infinity,
          color: myColor,

          child: ListView(
              scrollDirection: Axis.vertical,


                children: <Widget>[

                  SizedBox(height: 10.0),
                  GridView.count(
                      padding: EdgeInsets.only(left: 20.0, right: 20.0),
                      crossAxisCount: 1,
                      childAspectRatio: 0.8,

                      primary: false,
                      shrinkWrap: true,
                      children: tempSearchStore.map((element) {
                        return buildResultCard(element);
                      }).toList()),

                  SizedBox(height: 30,),


                ]),

        )

'yol' : (context) => Wrapper() 这是我的 main.dart 文件中的路由

【问题讨论】:

  • 当我将“数据”更改为“上下文”时它的工作但这次返回 buildResultCard(element);元素给出问题

标签: android flutter dart


【解决方案1】:

您需要在函数参数中添加BuildContext

Widget buildResultCard(BuildContext context, data) {

或将您的卡片包装在 Builder 小部件中。

【讨论】:

  • Widget buildResultCard(BuildContext context, data) 当我这样改变时,元素再次出现问题
  • @AlperBorabay 只是为了确保您已将身体代码中的buildResultCard(element) 更改为buildResultCard(context, element)?您能否将您遇到的错误添加到您的问题中
猜你喜欢
  • 1970-01-01
  • 2019-01-28
  • 2021-07-23
  • 1970-01-01
  • 2020-04-08
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 2021-10-31
相关资源
最近更新 更多