我尝试使用Inkwell制作可触摸的Card,但是我的导航器上下文无法正常工作。
这是我的Card窗口小部件代码,我不明白为什么它不起作用。感谢帮助。
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 密码。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':(上下文)=> Wrapper()这是我main.dart文件中的路由
最佳答案
您需要在函数参数中添加BuildContext
Widget buildResultCard(BuildContext context, data) {
或将您的银行卡包装在Builder
小部件中。
关于android - Flutter Inkwell导航器上下文在Card中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64043726/