gpt4 book ai didi

android - Navigator.pop(context) 抛出异常

转载 作者:IT王子 更新时间:2023-10-29 07:06:32 25 4
gpt4 key购买 nike

我试图实现一个同时具有抽屉和 TabBar 演示的 UI,为此我尝试了以下操作:-

        import 'package:flutter/material.dart';

void main() => runApp(new NewApp());

class NewApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: DefaultTabController(
length: 3,
child: Scaffold(
drawer: Drawer(
child: ListView(

padding: EdgeInsets.zero,
children: <Widget>[
DrawerHeader(
child: Text("Drawer Header"),
decoration: BoxDecoration(
color: Colors.blue,
),
),
ListTile(
title: Text("Item1"),
onTap: (){
Navigator.pop(context);
},
),
ListTile(
title: Text("Item2"),
onTap: (){
Navigator.pop(context);
},
),

],
),
),
appBar: AppBar(
bottom: TabBar(
tabs: [
Tab(icon: Icon(Icons.room),text: "Room",),
Tab(icon: Icon(Icons.restaurant),text: "Restaurant",),
Tab(icon: Icon(Icons.school),text: "School"),
],
),
title: Text("Tab Bar View + Drawer"),
),
body: TabBarView(
children: [
Icon(Icons.room),
Icon(Icons.restaurant),
Icon(Icons.school),
],
),
),
),
);
}
}

现在这给了我一个错误:- 抛出另一个异常:请求导航器操作 不包含导航器的上下文。

如果有人有解决办法,请帮助清除它。谢谢。

最佳答案

我不知道错误/修复的原因(我所做的和有效的)。有人,请解释它是如何工作的。我只是将 DefaultTabController 包装到另一个无状态小部件 Home 中。它工作正常。请引用下面的代码。

import 'package:flutter/material.dart';

void main() => runApp(new NewApp());

class NewApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: Home(),
);
}
}

class Home extends StatelessWidget {
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: 3,
child: Scaffold(
drawer: Drawer(
child: ListView(

padding: EdgeInsets.zero,
children: <Widget>[
DrawerHeader(
child: Text("Drawer Header"),
decoration: BoxDecoration(
color: Colors.blue,
),
),
ListTile(
title: Text("Item1"),
onTap: (){
Navigator.pop(context);
},
),
ListTile(
title: Text("Item2"),
onTap: (){
Navigator.pop(context);
},
),

],
),
),
appBar: AppBar(
bottom: TabBar(
tabs: [
Tab(icon: Icon(Icons.room),text: "Room",),
Tab(icon: Icon(Icons.restaurant),text: "Restaurant",),
Tab(icon: Icon(Icons.school),text: "School"),
],
),
title: Text("Tab Bar View + Drawer"),
),
body: TabBarView(
children: [
Icon(Icons.room),
Icon(Icons.restaurant),
Icon(Icons.school),
],
),
),
);
// TODO: implement build
}

}

关于android - Navigator.pop(context) 抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51500827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com