1、实现效果图

2、实现流程
2.1、引入依赖

2.2、封装弹窗工具类
import 'package:fluttertoast/fluttertoast.dart';
class CommontToast {
static showToast(String msg) {
Fluttertoast.showToast(
msg: msg,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
timeInSecForIosWeb: 1,
fontSize: 16.0);
}
}
2.3、设置页
import 'package:flutter/material.dart';
import 'package:flutter_haoke/scopoed_model/auth_model.dart';
import 'package:flutter_haoke/utils/common_toast.dart';
import 'package:flutter_haoke/utils/scopoed_mode_helper.dart';
class SettingPage extends StatelessWidget {
const SettingPage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("设置")),
body: TextButton(
onPressed: () {
ScopoedModelHelper.getModel<AuthModel>(context).logout();
CommontToast.showToast("退出登录");
},
child: Text("退出登录")),
);
}
}
2.4、路由中注册设置页面
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:flutter_haoke/loading.dart';
import 'package:flutter_haoke/pages/community_picker.dart';
import 'package:flutter_haoke/pages/home/index.dart';
import 'package:flutter_haoke/pages/loading.dart';
import 'package:flutter_haoke/pages/login.dart';
import 'package:flutter_haoke/pages/notfound.dart';
import 'package:flutter_haoke/pages/register.dart';
import 'package:flutter_haoke/pages/room_add/index.dart';
import 'package:flutter_haoke/pages/room_manager/index.dart';
import 'package:flutter_haoke/pages/roomdetail/index.dart';
import 'package:flutter_haoke/pages/setting.dart';
class Routes {
static String home = '/';
static String login = '/login';
static String register = '/register';
static String roomdetail = '/roomDetail/:roomId';
static String setting = '/setting';
static String roommanager = '/roommanager';
static String roomAdd = '/roomAdd';
static String community = '/community';
static String loading = '/loading';
static Handler _homeHandel = Handler(
handlerFunc: (context, parameters) {
return HomePage();
},
);
static Handler _loginHandel = Handler(
handlerFunc: (context, parameters) {
return LoginPage();
},
);
static Handler _registerHandel = Handler(
handlerFunc: (context, parameters) {
return RegisterPage();
},
);
static Handler _settingHandel = Handler(
handlerFunc: (context, parameters) {
return SettingPage();
},
);
static Handler _roommanagerHandel = Handler(
handlerFunc: (context, parameters) {
return RoomManagerPage();
},
);
static Handler _roomdetailHandel = Handler(
handlerFunc: (context, parameters) {
return RoomDetailPage(
roomId: parameters["roomId"]![0],
);
},
);
static Handler _notfoundHandel = Handler(
handlerFunc: (context, parameters) {
return NotFoundPage();
},
);
static Handler _roomAddHandel = Handler(
handlerFunc: (context, parameters) {
return RoomAddPage();
},
);
static Handler _communityHandel = Handler(
handlerFunc: (context, parameters) {
return CommunityPickerPage();
},
);
static Handler _loadingHandel = Handler(
handlerFunc: (context, parameters) {
return LoadingPage();
},
);
static void configureRoutes(FluroRouter router) {
router.define(home, handler: _homeHandel);
router.define(login, handler: _loginHandel);
router.define(register, handler: _registerHandel);
router.define(roomdetail, handler: _roomdetailHandel);
router.define(setting, handler: _settingHandel);
router.define(roommanager, handler: _roommanagerHandel);
router.define(roomAdd, handler: _roomAddHandel);
router.define(community, handler: _communityHandel);
router.define(loading, handler: _loadingHandel);
router.notFoundHandler = _notfoundHandel;
}
}