Flutter项目之设置页

目录:

1、实现效果图

2、实现流程

2.1、引入依赖

2.2、封装弹窗工具类

dart 复制代码
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、设置页

dart 复制代码
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、路由中注册设置页面

dart 复制代码
// 1.编写route文件 并编写routes基本结构
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 {
  // 2.定义路由名称
  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';

  // 3.定义路由处理函数
  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();
    },
  );
  // 4.编写函数 configureRoutes 关联路由名称和处理函数
  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;
  }
}
相关推荐
_祝你今天愉快9 分钟前
Java-JVM探析
android·java·jvm
叽哥13 分钟前
dart学习第1节: 变量与数据类型 —— 程序的 “基本元素”
flutter
PineappleCoder15 分钟前
JS 作用域链拆解:变量查找的 “俄罗斯套娃” 规则
前端·javascript·面试
知识分享小能手21 分钟前
Vue3 学习教程,从入门到精通,Vue3 中使用 Axios 进行 Ajax 请求的语法知识点与案例代码(23)
前端·javascript·vue.js·学习·ajax·vue·vue3
533_27 分钟前
[echarts] 更新数据
前端·javascript·echarts
飞天卡兹克33 分钟前
forceStop流程会把对应进程的pendingIntent给cancel掉
android
讨厌吃蛋黄酥34 分钟前
利用Mock实现前后端联调的解决方案
前端·javascript·后端
zzywxc7871 小时前
在处理大数据列表渲染时,React 虚拟列表是提升性能的关键技术,但在实际实现中常遇到渲染抖动和滚动定位偏移等问题。
前端·javascript·人工智能·深度学习·react.js·重构·ecmascript
_Kayo_8 小时前
VUE2 学习笔记14 nextTick、过渡与动画
javascript·笔记·学习