Android 在flatter中运行卡上的ontap()手势
我一直在尝试从Flatter的material package运行onTap()函数,但它似乎给我带来了以下错误: “处理手势时抛出以下断言: 使用不包含导航器的上下文请求的导航器操作。“ 我需要运行这个函数来接触应用程序中新屏幕的调用函数 代码如下:Android 在flatter中运行卡上的ontap()手势,android,flutter,android-studio,flutter-dependencies,Android,Flutter,Android Studio,Flutter Dependencies,我一直在尝试从Flatter的material package运行onTap()函数,但它似乎给我带来了以下错误: “处理手势时抛出以下断言: 使用不包含导航器的上下文请求的导航器操作。“ 我需要运行这个函数来接触应用程序中新屏幕的调用函数 代码如下: class _HomePageState extends State<dashboardpage> { @override Widget build(BuildContext context) { return Mat
class _HomePageState extends State<dashboardpage> {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Stack(
children: <Widget>[
Container(
height:130*.99,
decoration: BoxDecoration(
image: DecorationImage(
alignment: Alignment.center,
image: AssetImage('assets/bismillah.png'),fit: BoxFit.fitHeight,
)
),
),
SafeArea(
child: Padding(
padding: EdgeInsets.only(top: 0),
child: Column(
children:<Widget> [
Container(
height: 100.0,
child: Row(
children:<Widget> [
Center(
child: SizedBox(
width: 90.0,
),
),
Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.end
)
],
),
),
Expanded(
child:GridView.count(
mainAxisSpacing: 10,
crossAxisSpacing: 10,
primary: false,
crossAxisCount: 2,
children: <Widget>[
Padding(
padding: const EdgeInsets.only(top: 60),
child: InkWell(
child: Card(
child: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Image.asset('assets/images/kafiroun/kafirun.jpg',height: 80),
Text('सूरा अल काफिरून',style: TextStyle(fontWeight: FontWeight.bold,color: Colors.black87))
]
),
),
shape:RoundedRectangleBorder(borderRadius: BorderRadius.circular(12.0)
),
elevation: 5.0,
),
onTap:(){
Navigator.push(context, MaterialPageRoute(builder: (context)=> kafiroun()));
},
)
),
),
),
)
]
);
}
}
class\u HomePageState扩展状态{
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:脚手架(
主体:堆栈(
儿童:[
容器(
高度:130*.99,
装饰:盒子装饰(
图像:装饰图像(
对齐:对齐.center,
图片:AssetImage('assets/bismillah.png'),fit:BoxFit.fitHeight,
)
),
),
安全区(
孩子:填充(
填充:仅限边集(顶部:0),
子:列(
儿童:[
容器(
高度:100.0,
孩子:排(
儿童:[
居中(
孩子:大小盒子(
宽度:90.0,
),
),
纵队(
mainAxisAlignment:mainAxisAlignment.start,
crossAxisAlignment:crossAxisAlignment.end
)
],
),
),
扩大(
子项:GridView.count(
平均间距:10,
横轴间距:10,
主要:错误,
交叉轴计数:2,
儿童:[
填充物(
填充:仅限常量边集(顶部:60),
孩子:InkWell(
孩子:卡片(
子:容器(
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
Image.asset('assets/images/kafiroun/kafirun.jpg',高度:80),
文本('सूरा अल काफिरून',样式:TextStyle(fontWeight:fontWeight.bold,颜色:Colors.black87))
]
),
),
形状:圆形RectangleBorder(borderRadius:borderRadius.circular(12.0)
),
标高:5.0,
),
onTap:(){
push(context,MaterialPageRoute(builder:(context)=>kafiroun());
},
)
),
),
),
)
]
);
}
}
这是代码样本,代码卡在onTap()行上。
请帮帮我!使用手势检测器
GestureDetector(onTap:(){
Navigator.push(context, MaterialPageRoute(builder: (context)=> kafiroun()));
},
child: Padding(
padding: const EdgeInsets.only(top: 60),
child: InkWell(
child: Card(
child: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Image.asset('assets/images/kafiroun/kafirun.jpg',height: 80),
Text('सूरा अल काफिरून',style: TextStyle(fontWeight: FontWeight.bold,color: Colors.black87))
]
),
),
shape:RoundedRectangleBorder(borderRadius: BorderRadius.circular(12.0)
),
elevation: 5.0,
),
)
),
)
手势检测器(onTap:(){
push(context,MaterialPageRoute(builder:(context)=>kafiroun());
},
孩子:填充(
填充:仅限常量边集(顶部:60),
孩子:InkWell(
孩子:卡片(
子:容器(
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
Image.asset('assets/images/kafiroun/kafirun.jpg',高度:80),
文本('सूरा अल काफिरून',样式:TextStyle(fontWeight:fontWeight.bold,颜色:Colors.black87))
]
),
),
形状:圆形RectangleBorder(borderRadius:borderRadius.circular(12.0)
),
标高:5.0,
),
)
),
)
您的导航器中的上下文
找不到材质应用
。将您的支架
放入另一个无状态小部件
,示例:类主页扩展了无状态小部件{…您的支架在这里…}
。然后,将MaterialApp
的home
属性设置为home:HomePage()
。该手势也给出了相同的错误