Flutter 我想退出后退按钮应用程序,使用willpopscope代码和我的代码
我想退出后退按钮应用程序,使用willpopscope代码和我的代码。 你不能这样写代码吗 使用另一个后退按钮时,出现应用程序退出代码xxxx:xxxx错误 下面的代码也给出了一个错误 我在想办法 请指教Flutter 我想退出后退按钮应用程序,使用willpopscope代码和我的代码,flutter,Flutter,我想退出后退按钮应用程序,使用willpopscope代码和我的代码。 你不能这样写代码吗 使用另一个后退按钮时,出现应用程序退出代码xxxx:xxxx错误 下面的代码也给出了一个错误 我在想办法 请指教 class HomeScreen extends StatelessWidget { DateTime currentBackPressTime; final scaffoldKey = GlobalKey<ScaffoldState>(); final Fir
class HomeScreen extends StatelessWidget {
DateTime currentBackPressTime;
final scaffoldKey = GlobalKey<ScaffoldState>();
final FirebaseUser user;
HomeScreen({this.user});
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async{
bool result = onPressBackButton();
return await Future.value(result);
},
child: MaterialApp(
title: 'Custom Navigation Drawer Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
debugShowCheckedModeBanner: false,
home: MyHomePage(
),
),
);
}
bool onPressBackButton() {
DateTime now = DateTime.now();
if (currentBackPressTime == null ||
now.difference(currentBackPressTime) > Duration(seconds: 2)) {
currentBackPressTime = now;
scaffoldKey.currentState
..hideCurrentSnackBar()
..showSnackBar(SnackBar(
content: Text("Tap back again to leave."),
));
return false;
}
return true;
}
}
类主屏幕扩展小部件{
DateTime currentBackPressTime;
最终脚手架键=GlobalKey();
最终FirebaseUser用户;
主屏幕({this.user});
@凌驾
小部件构建(构建上下文){
返回式示波器(
onWillPop:()异步{
bool result=onPressBackButton();
返回等待未来。值(结果);
},
孩子:MaterialApp(
标题:“自定义导航抽屉演示”,
主题:主题数据(
主样本:颜色。蓝色,
),
debugShowCheckedModeBanner:false,
主页:我的主页(
),
),
);
}
bool onpress backbutton(){
DateTime now=DateTime.now();
如果(currentBackPressTime==null||
现在.差异(currentBackPressTime)>持续时间(秒:2)){
currentBackPressTime=现在;
scaffoldKey.currentState
…hideCurrentSnackBar()
…显示SnackBar(SnackBar(
内容:文本(“再次点击返回以离开”),
));
返回false;
}
返回true;
}
}
您的Willposcope小部件放错了位置
您必须将其放置在MaterialApp小部件中,该小部件有一个导航器使其工作
Widget build(BuildContext context) {
return MaterialApp(
title: 'Custom Navigation Drawer Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
debugShowCheckedModeBanner: false,
home: WillPopScope(
onWillPop: () async {
bool result = onPressBackButton();
return await Future.value(result);
},
child: MyHomePage(),
),
);
}