flutter修改状态栏学习

在flutter中如何动态更改状态栏的颜色和风格。

前置知识点学习

AnnotatedRegion

`AnnotatedRegion` 是 Flutter 中的一个小部件,用于在特定区域中提供元数据(metadata)以影响某些系统级的行为或外观。它通常用于改变系统 UI 的外观,比如状态栏或导航栏的颜色和风格。

主要用途

1.系统 UI 风格:最常见的用途是与 `SystemUiOverlayStyle` 一起使用,来指定状态栏和导航栏的颜色和图标样式。

2.区域性元数据:它允许在特定的 `Widget` 子树中提供数据,这些数据可以被 Flutter 的其他系统或组件读取和使用。

典型用法

在 Flutter 中,`AnnotatedRegion` 经常用于设置状态栏的样式。通过包裹一个子组件树,并提供一个 `SystemUiOverlayStyle` 值,系统会在该区域应用指定的状态栏样式。

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';class MyStatusBarDemoPage extends StatelessWidget {const MyStatusBarDemoPage({super.key});@overrideWidget build(BuildContext context) {return AnnotatedRegion<SystemUiOverlayStyle>(value: SystemUiOverlayStyle.light,child: Scaffold(appBar: AppBar(title: const Text('AnnotatedRegion Example'),),body: const Center(child: Text('Hello, World!'),),));}
}

注意事项

1.优先级:如果有多个嵌套的 `AnnotatedRegion`,最内层的 `AnnotatedRegion` 的值将会覆盖外层的值。

2.适用范围:`AnnotatedRegion` 适用于需要传递元数据以影响子树行为的场景,主要是系统 UI 样式设置。

3.应用场景:非常适合需要在应用程序的不同页面或部分动态设置状态栏或导航栏风格的情况。

总结

`AnnotatedRegion` 是一个强大的工具,可以在 Flutter 应用的特定区域中设置系统级别的 UI 样式。这使得开发者可以更细粒度地控制应用的视觉风格,特别是在需要根据不同界面动态调整状态栏和导航栏的外观时。通过理解和使用 `AnnotatedRegion`,可以大大增强应用的用户界面体验。

SystemUiOverlayStyle

`SystemUiOverlayStyle` 是 Flutter 中用于定义系统 UI 覆盖层外观的一个类。它主要用于控制状态栏和导航栏的颜色和图标样式。这在提供一致的用户体验和匹配应用的主题时非常有用。

主要属性

`SystemUiOverlayStyle` 提供了一些属性来控制状态栏和导航栏的外观:

1.`statusBarColor`:

  • 定义状态栏的背景颜色。
  • 仅在 Android 上有效,因为 iOS 的状态栏颜色是由系统控制的。

2.`statusBarIconBrightness`:

  • 控制状态栏中图标的亮度(深色或浅色)。
  • 可选值为 `Brightness.light` 和 `Brightness.dark`。
  • 影响状态栏图标和文字的颜色。

3.`statusBarBrightness`:

  • 控制 iOS 状态栏的亮度。
  • 用于在 iOS 上设置状态栏内容的颜色(文字和图标)。

4.`systemNavigationBarColor`:

  • 定义系统导航栏的背景颜色。
  • 仅在 Android 上有效。

5.`systemNavigationBarIconBrightness`:

  • 控制导航栏中图标的亮度。
  • 适用于 Android。

6.`systemNavigationBarDividerColor`:

  • 定义导航栏分隔线的颜色。
  • 适用于 Android。

使用示例

可以通过 `SystemChrome.setSystemUIOverlayStyle` 方法应用 `SystemUiOverlayStyle`,或者通过 `AnnotatedRegion` 小部件在特定区域应用。

class MyStatusBarDemoPage extends StatelessWidget {const MyStatusBarDemoPage({super.key});@overrideWidget build(BuildContext context) {SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(statusBarColor: Colors.blue,statusBarIconBrightness: Brightness.light,systemNavigationBarColor: Colors.blue,systemNavigationBarIconBrightness: Brightness.light));return Scaffold(appBar: AppBar(title: const Text('AnnotatedRegion Example'),),body: const Center(child: Text('Hello, World!'),),);}
}

注意事项

1.平台差异:一些属性仅在 Android 上有效(如 `statusBarColor` 和 `systemNavigationBarColor`),而 iOS 上状态栏的外观由系统控制。

2.视觉一致性:确保选择的颜色和亮度组合在各种背景和主题下提供良好的对比度,以保证可读性和用户体验。

3.动态更新:可以在应用的生命周期中多次调用 `SystemChrome.setSystemUIOverlayStyle` 以响应特定页面或组件的需求。

kToolbarHeight

`kToolbarHeight` 是 Flutter 框架中定义的一个常量,代表了标准应用栏(AppBar)的默认高度。它是一个 `double` 类型的值,通常被用来确保应用的布局与 Flutter 的设计规范保持一致。

详细解析

数值:

  • `kToolbarHeight` 的值是 `56.0`。这个值是在 Material Design 指南中规定的标准高度,用于 Android 和 iOS 的应用栏。

用途:

  • AppBar 高度:在定义 `AppBar` 时,`kToolbarHeight` 确保了应用栏的高度与 Material Design 的标准保持一致。
  • 布局计算:在布局计算中,特别是在需要考虑上方留白或空间的情况下,`kToolbarHeight` 可以用于计算其它组件的高度或位置。
  • 自定义组件:在实现自定义的 `AppBar` 或类似组件时,可以使用 `kToolbarHeight` 作为高度参考,以保持一致的视觉设计。

使用场景

1.标准 AppBar:
在使用现成的 `AppBar` 组件时,`kToolbarHeight` 是默认的高度,不需要显式指定。但在自定义布局中,你可以使用它来确保一致性。

AppBar(title: Text('Example AppBar'),
)

2.自定义 AppBar:
如果你实现自己的 `AppBar`,可以通过实现 `PreferredSizeWidget` 接口来使用 `kToolbarHeight`。

import 'package:flutter/material.dart';class MyCustomAppBar extends StatelessWidget implements PreferredSizeWidget {const MyCustomAppBar({super.key});@overrideWidget build(BuildContext context) {return Container(color: Colors.blue,height: kToolbarHeight, // 使用 kToolbarHeight 保持标准高度child: const Text('Custom AppBar',style: TextStyle(color: Colors.white, fontSize: 20),),);}@overrideSize get preferredSize => const Size.fromHeight(kToolbarHeight);
}

3.布局计算:

例如,在布局中计算可用空间时,减去 `kToolbarHeight` 可以确保下方组件不会被 `AppBar` 遮挡。

double availableHeight = MediaQuery.of(context).size.height - kToolbarHeight;

注意事项

  • 一致性:使用 `kToolbarHeight` 可以确保整个应用在使用 `AppBar` 相关布局时保持一致的设计规范。
  • 灵活性:虽然 `kToolbarHeight` 提供了一个标准的高度,但在某些情况下,你可能需要根据设计需求调整高度。如果调整,请确保设计的视觉效果和可用性。

总结

`kToolbarHeight` 是一个简单但有用的常量,帮助开发者在 Flutter 应用中保持布局的一致性,特别是在应用栏的设计中。通过使用 `kToolbarHeight`,你可以确保应用在视觉上符合 Material Design 的规范,同时也为用户提供一致的体验。

Size get preferredSize

  • 这是一个 getter 方法,返回一个 `Size` 对象。
  • `preferredSize` 是 `PreferredSizeWidget` 接口要求的一个属性。它指定了部件的首选大小,在这种情况下,通常用于自定义 `AppBar` 或需要特定大小的任何部件。

`const Size.fromHeight(kToolbarHeight)

  • `Size` 是一个类,表示部件的宽度和高度。
  • `Size.fromHeight(double height)` 是一个命名构造函数,用于创建一个具有指定高度的 `Size` 对象。宽度被设为无限(`double.infinity`),这意味着宽度是灵活的,可以由父部件或布局系统来确定。
  • `kToolbarHeight` 是 Flutter 框架中定义的一个常量,指定了 AppBar 的标准高度,即 `56.0` 逻辑像素。
  • `const` 用于创建一个编译时常量,这可以提高性能,因为对象只实例化一次并被重用。

上下文和用法

  • 自定义 AppBar 或部件:在创建需要像 `AppBar` 一样行为的自定义部件时,实现 `PreferredSizeWidget` 允许你指定部件的首选大小。这对于布局系统分配正确的空间给该部件非常重要。
  • 标准化:通过使用 `kToolbarHeight`,部件遵循了 Material Design 指南中定义的标准 AppBar 高度。这确保了应用程序不同部分的一致性,并符合用户的预期。

IconButton

`IconButton` 是 Flutter 中的一个小部件,用于创建一个具有图标的按钮。它是一个无状态的按钮,用户可以点击它来触发某种动作。`IconButton` 是构建用户界面时常用的组件之一,特别是在需要使用图标而非文本作为交互元素的情况下。

主要属性

1.`icon`:

  • 这是一个 `Widget` 类型,通常是一个 `Icon`,表示按钮中显示的图标。
  • 例如:`icon: Icon(Icons.add)`

2.`onPressed`:

  • 这是一个回调函数,当用户点击按钮时被调用。
  • 如果为 `null`,按钮将被禁用并且不会响应点击事件。
  • 例如:`onPressed: () { print("Button pressed"); }`

3.`tooltip`:

  • 用于提供按钮的描述性文本,当用户长按按钮时显示。通常用于无障碍支持,帮助用户理解按钮的功能。
  • 例如:`tooltip: 'Add Item'`

4.`iconSize`:

  • 用于设置图标的大小,以逻辑像素为单位。
  • 例如:`iconSize: 30.0`

5.`color`:

  • 设置图标的颜色。
  • 例如:`color: Colors.blue`

6.`padding`:

  • 设置按钮的内边距,即图标与按钮边界之间的距离。
  • 例如:`padding: EdgeInsets.all(8.0)`

7.`alignment`:

  • 控制图标在按钮内的对齐方式。
  • 例如:`alignment: Alignment.center`

示例代码

以下是一个简单的 `IconButton` 用法示例:

IconButton(icon: Icon(Icons.volume_up),iconSize: 30.0,color: Colors.blue,tooltip: 'Increase volume',onPressed: () {print('Volume button clicked');},
)

使用场景

  • 导航栏中的操作按钮,比如返回、菜单、搜索等。
  • 表单中的提交或取消操作。
  • 增加或减少某些数值,如音量或亮度。
  • 任何需要图标作为触发器的交互场景。

总结

`IconButton` 是一个非常灵活的组件,用于在应用程序中以图标形式展示交互按钮。通过其属性,你可以定制图标的大小、颜色、对齐方式以及点击行为等。它广泛用于各种 UI 场景中,为用户提供直观的点击操作。

SafeArea

`SafeArea` 是 Flutter 中的一个布局小部件,用于在应用程序中创建一个“安全”的显示区域。它通过插入合适的填充(padding)来避免应用界面被设备的系统 UI 元素(如状态栏、导航栏、屏幕边角等)遮挡。`SafeArea` 是特别有用的,因为它能够自适应不同设备和屏幕的特殊区域,确保内容的可见性和可用性。

主要功能

  • 自动填充:`SafeArea` 会自动检测设备的特殊区域,并为其子组件添加合适的填充,以确保内容不被这些区域遮挡。
  • 适应性强:能够适应不同设备和屏幕方向(横屏或竖屏)上的各种系统 UI 元素。

主要属性

1.`child`:

  • `SafeArea` 的子组件,即需要保护的内容。

2.`left`, `top`, `right`, `bottom`:

  • 布尔值,用于指定是否在对应方向上应用安全填充。
  • 例如:`left: false` 表示不在左侧应用填充。

3.`minimum`:

  • 用于指定最小填充值。即使计算得出的系统填充值小于这个值,`SafeArea` 也会应用这个最小值。

4.`maintainBottomViewPadding`:

  • 当为 `true` 时,即使在键盘弹出时也保持底部填充。这在需要保持底部内容始终可见的情况下非常有用。

使用场景

  • 页面布局:在设计页面布局时,确保内容不会被系统 UI 遮挡。
  • 全屏应用:在需要全屏显示但又不想被设备特有的区域(如刘海屏、圆角)影响时,使用 `SafeArea` 非常有效。
  • 跨平台开发:在开发需要适应不同屏幕尺寸和设备特性的跨平台应用时,`SafeArea` 是一个必备的工具。

总结

`SafeArea` 是 Flutter 中一个非常实用的小部件,用于确保应用程序的内容在各种设备上始终可见且不被遮挡。通过自动适应设备的系统 UI 组件,它为开发者提供了一种简单而有效的方法来处理不同设备上的屏幕布局问题。

SystemChrome.setSystemUIOverlayStyle( SystemUiOverlayStyle.light)

`SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light)` 是一段用于在 Flutter 应用中设置系统 UI 样式的代码。具体来说,它用于更改设备状态栏(通常位于屏幕顶部)的外观。

解析

SystemChrome`:

  • `SystemChrome` 是 Flutter 提供的一个类,用于控制设备的许多系统级特性,如屏幕方向、系统 UI 样式等。

`setSystemUIOverlayStyle`:

  • 这是 `SystemChrome` 类中的一个静态方法,用于设置系统 UI 覆盖层的样式。
  • 该方法接受一个 `SystemUiOverlayStyle` 类型的参数,用于指定状态栏和导航栏的样式。

`SystemUiOverlayStyle.light`:

  • `SystemUiOverlayStyle` 是一个类,其中包含了许多用于定义系统 UI 外观的属性。`SystemUiOverlayStyle.light` 是其一个预定义的样式。
  • 使用 `light` 风格会将状态栏的图标和文字设为浅色,通常适用于深色背景,以确保内容的可读性。

作用

通过调用 `SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light)`,你可以在应用中设置状态栏的样式,使其与应用的整体设计风格相匹配。浅色风格的状态栏图标和文字在深色背景下具有更好的对比度和可读性。

使用场景

  • 深色主题应用:当应用使用深色主题时,可以使用 `SystemUiOverlayStyle.light` 来确保状态栏的图标和文字清晰可见。
  • 动态主题切换:在应用中切换主题时,可以动态设置状态栏样式以适应当前的主题。

示例代码

以下是一个简单的应用示例,展示了如何设置状态栏的样式:

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() {runApp(MyApp());
}
class MyApp extends StatelessWidget {@overrideWidget build(BuildContext context) {// 设置状态栏样式为浅色SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light);return MaterialApp(home: Scaffold(appBar: AppBar(title: Text('System UI Overlay Style'),),body: Center(child: Text('Hello, World!'),),),);}
}

注意事项

  • 平台限制:某些样式属性可能在特定平台(如 iOS 或 Android)上表现不同。通常,状态栏的颜色在 iOS 上是系统控制的,而在 Android 上可以通过此方法进行更改。
  • 状态栏颜色:如果需要更改状态栏的背景颜色,需要在 Android 上同时设置 `statusBarColor` 属性。

总结

通过 `SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light)`,开发者可以定制 Flutter 应用的系统 UI 样式,以增强视觉一致性和可读性。这是创建现代化、用户友好界面的一个重要工具。

代码实现学习

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';class MyCustomStatusBarDemoPage extends StatefulWidget {const MyCustomStatusBarDemoPage({super.key});@override_MyCustomStatusBarPageState createState() => _MyCustomStatusBarPageState();
}class _MyCustomStatusBarPageState extends State<MyCustomStatusBarDemoPage> {bool customSystemUIOverlayStyle = false;@overrideWidget build(BuildContext context) {var body = getBody();if (customSystemUIOverlayStyle) {return body;}return AnnotatedRegion<SystemUiOverlayStyle>(value: SystemUiOverlayStyle.dark,child: body,);}getBody() {return Scaffold(appBar: const MyImageAppBar(),body: Center(child: Row(mainAxisAlignment: MainAxisAlignment.center,crossAxisAlignment: CrossAxisAlignment.center,children: <Widget>[TextButton(onPressed: () {setState(() {customSystemUIOverlayStyle = true;});SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light);},style: ButtonStyle(backgroundColor: ButtonStyleButton.allOrNull<Color>(Colors.yellowAccent)),child: const Text("Light")),const SizedBox(width: 10,),TextButton(onPressed: () {setState(() {customSystemUIOverlayStyle = true;});SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark);},style: ButtonStyle(backgroundColor: ButtonStyleButton.allOrNull<Color>(Colors.greenAccent,),),child: const Text("Dart"))],),),);}
}class MyImageAppBar extends StatelessWidget implements PreferredSizeWidget {const MyImageAppBar({super.key});@overrideWidget build(BuildContext context) {return Stack(children: <Widget>[Image.asset("static/demo.png",fit: BoxFit.cover,width: MediaQuery.sizeOf(context).width,height: kToolbarHeight * 2,),SafeArea(child: IconButton(color: Colors.white,icon: const Icon(Icons.arrow_back_ios),onPressed: () {Navigator.of(context).pop();},))],);}@overrideSize get preferredSize => const Size.fromHeight(kToolbarHeight * 2);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/63454.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

功能篇:JAVA使用jwt

在Java中实现JWT&#xff08;JSON Web Token&#xff09;认证通常涉及以下几个步骤&#xff1a; 1. 添加依赖 2. 创建JWT工具类 3. 实现登录接口&#xff0c;生成JWT 4. 实现过滤器&#xff0c;验证JWT ### 1. 添加依赖 首先&#xff0c;你需要在项目中添加JWT库的依赖。如果…

Chrome扩展程序开发示例

项目文件夹内文件如下&#xff1a; manifest.json文件内容&#xff1a; {"manifest_version": 3,"name": "我的法宝","description": "我的有魔法的宝贝","version": "1.0","icons": {"…

前端知识1html

VScode一些快捷键 Ctrl/——注释 !——生成html框架元素 *n——生成n个标签 直接书写html的名字回车生成对应的标签 常见标签 span&#xff1a; <span style"color: red;">hello</span> <span>demo</span> span实现&#xff1a; 标题…

计算机键盘简史 | 键盘按键功能和指法

注&#xff1a;本篇为 “计算机键盘简史 | 键盘按键功能和指法” 相关文章合辑。 英文部分机翻未校。 The Evolution of Keyboards: From Typewriters to Tech Marvels 键盘的演变&#xff1a;从打字机到技术奇迹 Introduction 介绍 The keyboard has journeyed from a humb…

mongoDb的读session和写session权限报错问题

go在使用mongoDb时用到了全局会话&#xff0c;发现在创建的session的逻辑相同&#xff0c;首先会进行数据的查询&#xff0c;此时获取了全局session执行读操作&#xff0c;查询所有文档&#xff0c;则当前会话为读会话&#xff0c;当再去插入时发现会报错&#xff0c;此时sessi…

【C++】求第二大的数详细解析

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目描述&#x1f4af;输入描述&#x1f4af;解题思路分析1. 题目核心要求2. 代码实现与解析3. 核心逻辑逐步解析定义并初始化变量遍历并处理输入数据更新最大值与次大值输…

redis-stack redisSearch环境安装搭建

RedisSearch在redis许可证变更之后显得是redis中的一大特色&#xff0c;闲来无事学习记录一下。 尝试通过源码编译redisSearch&#xff0c;貌似非常费劲&#xff0c;所以建议使用docker或者Linux的发行包进行安装redis-stack。redis-stack是基于redis的模块化机制进行一个扩展…

JavaCV录屏到网络流

1、pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.…

scala 编写 hdfs 工具类

scala 编写 hdfs 工具类 scala 创建 删除 hdfs 文件或目录 scala 上传 下载 hdfs 文件 scala 读取 写入 hdfs 文件 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi&quo…

从零用java实现 小红书 springboot vue uniapp (1)

前言 偶尔会用小红书发一些笔记 闲来无事 想自己实现一个小红书 正好可以学习一下 帖子 留言 im 好友 推送 等功能 下面我们就从零 开发一个小红书 后台依旧用我们的会员系统的脚手架 演示 http://120.26.95.195:8889/ 客户端我们使用uniapp 我们首先对主页进行一个分解 顶部我…

Cesium 按区域生成高度图

Cesium 按区域生成高度图 Cesium 按区域生成高度图 const cmd new CustomDrawCommand({vertexArray,shaderProgram,commandType: Compute,outputTexture: bufferColor,uniformMap,postExecute: () > {const url getImageByTexture(bufferAColor, gl);viewer.scene.primiti…

RESTful API设计原则与最佳实践

在当今的数字化时代&#xff0c;应用程序编程接口&#xff08;API&#xff09;已成为企业间数据交换、系统集成和业务扩展的关键工具。RESTful API作为一种基于HTTP协议的轻量级、无状态、可扩展的架构设计风格&#xff0c;在Web服务、移动应用、物联网等多个领域得到了广泛应用…

SpringMVC全局异常处理

一、Java中的异常 定义&#xff1a;异常是程序在运行过程中出现的一些错误&#xff0c;使用面向对象思想把这些错误用类来描述&#xff0c;那么一旦产生一个错误&#xff0c;即创建某一个错误的对象&#xff0c;这个对象就是异常对象。 类型&#xff1a; 声明异常&#xff1…

最小绝对偏差(Least Absolute Deviation, LAD)---子梯度法

最小绝对偏差&#xff08;Least Absolute Deviations&#xff0c;简称LAD&#xff09;是一种用于回归分析的统计方法&#xff0c;其目标是最小化残差的绝对值之和&#xff0c;而不是最小二乘法中的残差平方和。LAD回归特别适用于存在异常值的数据集&#xff0c;因为它对异常值不…

Linux - 进程等待和进程替换

进程等待 前面我们了解了如果父进程没有回收子进程, 那么当子进程接收后, 就会一直处于僵尸状态, 导致内存泄漏, 那么我们如何让父进程来回收子进程的资源. waitpid 我们可以通过 Linux 提供的系统调用函数 wait 系列函数来等待子进程死亡, 并回收资源. #include <sys/t…

mac下载安装jdk

背景 长时间不折腾mac全部忘记 特此记录 安装 1.下载jdk 根据需要下载对应的jdk 我直接 下载到/Applicatiions目录 https://www.oracle.com/java/technologies/downloads/#java8-mac 2.解压 cd /Applicatiions tar -zxvf jdk-8u431-macosx-x64.tar.gz 3.配置环境 …

【Java】—— 图书管理系统

基于往期学习的类和对象、继承、多态、抽象类和接口来完成一个控制台版本的 “图书管理系统” 在控制台界面中实现用户与程序交互 任务目标&#xff1a; 1、系统中能够表示多本图书的信息 2、提供两种用户&#xff08;普通用户&#xff0c;管理员&#xff09; 3、普通用户…

1-1.mysql2 之 mysql2 初识(mysql2 初识案例、初识案例挖掘)

一、mysql2 概述 mysql2 是一个用于 Node.js 的 MySQL 客户端库 mysql2 是 mysql 库的一个改进版本&#xff0c;提供了更好的性能和更多的功能 使用 mysql2 之前&#xff0c;需要先安装它 npm install mysql2 二、mysql2 初识案例 1、数据库准备 创建数据库 testdb CREAT…

[HDCTF 2023]LoginMaster

[HDCTF 2023]LoginMaster 知识点 quine注入 解题 用户名要为admin 查看robots.txt&#xff0c;查看源码 password是注入点 function checkSql($s) {if(preg_match("/regexp|between|in|flag||>|<|and|\||right|left|reverse|update|extractvalue|floor|subs…

springboot398研究生调研管理系统(论文+源码)_kaic

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差&#…