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