为什么选项卡小部件Navigator.pop(context)返回黑屏?

时间:2019-04-30 23:23:32

标签: flutter flutter-navigation

我正在使用DefaultTabbarWidget和Alert软件包。警报程序包具有默认的取消按钮。 “取消”按钮具有Navigator.pop(context)方法,因此我当前的页面标签栏和pop方法正在进入黑屏。

我想弹出方法不支持任何页面。 如何使用标签栏和导航器设计。 (标签页设置默认页)

我正在尝试这段代码,但不知道我想要什么。

void main() => runApp(App());
class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.light(),
      initialRoute: "/",
      routes: {
        '/tab': (context) => DefaultTabbar(),
        '/translate': (context) => TranslateScreen(),
        '/profile': (context) => ProfileScreen(),
      },
      debugShowCheckedModeBanner: false,
    );
  }
}
class _TranslateScreenState extends State<TranslateScreen> {
 _buildShowDialog(BuildContext context) {
    Navigator.pop(context);
//like alert cancel code
    // Alert(
    //   context: context,
    //   title: "Türkçe",
    //   type: AlertType.none,
    //   buttons: DialoB,
    //   content: WordConvertStream(
    //     word: this._data,
    //     key: Key("DialogWord"),
    //   ),
    // ).show();
  }
}

我希望关闭.pop()警报对话框,但不关闭警报。

Home Screen Back Screen

1 个答案:

答案 0 :(得分:0)

您需要BuildContext才能将导航推送到Navigators堆栈。

void _buildShowDialog() {
 showDialog(
   context: context,
   builder: (BuildContext context) {
     return AlertDialog(
       title: new Text("foo"),
       content: new Text("bar"),
       actions: <Widget>[
         new FlatButton(
           child: new Text("Close"),
           onPressed: () {
             Navigator.of(context).pop();
           },
         ),
       ],
     );
   },
 );
}