【发布时间】:2021-04-30 00:36:07
【问题描述】:
我一直在尝试从 Flutter 的材料包中运行 onTap() 函数,但它似乎给我抛出了这个错误:
“处理手势时抛出以下断言: 使用不包含 Navigator 的上下文请求的 Navigator 操作。"
我需要运行这个函数来访问应用程序中新屏幕的调用函数。
代码如下:
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()));
},
)
),
),
),
)
]
);
}
}
这是代码示例,代码卡在 onTap() 行。 请帮帮我!
【问题讨论】:
-
您的
Navigator中的context找不到MaterialApp。将您的Scaffold放入不同的StatelessWidget,示例:class HomePage extends StatelessWidget{ ...your Scaffold here... }。然后,将MaterialApp的home属性设置为home: HomePage()。
标签: android flutter android-studio flutter-dependencies