1

我正在使用 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() 警报对话框关闭但不关闭警报。

主屏幕 返回屏幕

4

1 回答 1

0

您需要 BuildContext 来推送导航到导航器堆栈。

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();
           },
         ),
       ],
     );
   },
 );
}
于 2019-06-29T21:10:05.903 回答