Flutter笔记:Widgets Easier组件库-使用隐私守卫

Flutter笔记
Widgets Easier组件库:使用隐私守卫

- 文章信息 - Author: 李俊才 (jcLee95)
Visit me at CSDN: https://jclee95.blog.csdn.net
My WebSitehttp://thispage.tech/
Email: 291148484@163.com.
Shenzhen China
Address of this article:https://blog.csdn.net/qq_28550263/article/details/139061840
HuaWei:https://bbs.huaweicloud.com/blogs/427696

组件库地址

  • Pub.Dev:https://pub.dev/packages/widgets_easier
  • GitHub:https://github.com/jacklee1995/widgets_easier

【介绍】:本文介绍Flutter Widgets Easier组件库中隐私守卫及其用法。

flutter-ljc


1. 概述

1.1 关于Widgets Easier

本库是一个 Flutter 组件库,旨在提供用于Flutter开发的组件,使得开发者能够更简单地构建出更丰富地界面效果。项目地址为:

  • https://github.com/jacklee1995/widgets_easier

  • https://pub.dev/packages/widgets_easier

1.2 模块安装

在你的Flutter项目中,运行下面的命令:

flutter pub add widgets_easier

即可安装最新版本的 Widgets Easier 库。

2. 隐私守卫

隐私保护组件PrivacyGuard用于保护一些页面信息不被截屏和泄露。在一些场景下,我们需要对页面做一些保护处理。比如用户输入密码时,我系需要禁止截屏录屏,而用户离开页面时,也可能需要对页面实现一个模糊化的效果。这是比价常用的功能,但是对话禁止录屏等操作Flutter没有直接的接口,每次都些通信实现这样一个简单组件比较麻烦。因此widgets Easier 针对于AndroidiOS进行了封装,直接以单子部件的形式提供使用。PrivacyGuard部件的签名如下:

const PrivacyGuard({super.key,required this.child, // 被保护的子组件this.blurRadius = 10.0, // 模糊半径this.blurColor = const Color.fromARGB(136, 225, 225, 225), // 模糊颜色this.onEnterPrivacyMode, // 离开页面时的回调this.onExitPrivacyMode, // 回到页面时的回调this.preventScreenshot = false, // 是否禁止截屏
});

下面的代码展示了一个被PrivacyGuard所守卫的登录页面:

import 'package:flutter/material.dart';
import 'package:widgets_easier/widgets_easier.dart';class GuardedPage extends StatelessWidget {const GuardedPage({super.key});Widget build(BuildContext context) {return PrivacyGuard(preventScreenshot: true,onEnterPrivacyMode: () => print('onEnterPrivacyMode'),onExitPrivacyMode: () => print('onExitPrivacyMode'),child: SafeArea(child: Scaffold(appBar: AppBar(title: const Text('登录页面'),),body: Padding(padding: const EdgeInsets.all(16.0),child: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: [const Text('守卫登录页',style: TextStyle(fontSize: 24.0,fontWeight: FontWeight.bold,),),const SizedBox(height: 32.0),const TextField(decoration: InputDecoration(labelText: '账户',border: OutlineInputBorder(),),),const SizedBox(height: 16.0),const TextField(decoration: InputDecoration(labelText: '密码',border: OutlineInputBorder(),),obscureText: true,),const SizedBox(height: 16.0),ElevatedButton(onPressed: () {// 登录逻辑},child: const Text('登录'),),],),),),),),);}
}

页面的大致效果如下:

在这里插入图片描述

在这里插入图片描述

3. 问题报告和代码贡献

问题报告

您可以在该项目的 GitHub 页面上提供反馈或报告问题。如果您觉得这个库缺少某个功能,请创建一个功能请求。在提交前,请先检查是否已又类似问题。

代码贡献

请将此仓库Fock到您的账户中,修改后rebase再PR到dev分支。建议提交信息格式为:

type(scope): info about commit.

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

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

相关文章

实战演练:一文教你将交换机纳入K8s,对容器进行纳管

随着云计算的发展和云原生应用的兴起,容器技术成为一种流行的应用部署和管理方式。容器化应用程序具有轻量、可移植和可扩展的特点,能够快速部署和运行在不同的环境中。Kubernetes作为一个容器编排平台,为云原生应用的部署、管理和自动化提供…

Qt官方示例---embedded

digiflip flickable flightinfo lightmaps raycasting styleexample

@RequestBody注解

RequestBody注解 扩展: http报文会包含四部分,第一部分是请求行,第二部分是请求头,第三部分是空行,第四部分是请求体。 对于POST之类的请求来说,它主要是用来传输数据的,它的参数主要是写在请求…

软考高级系规与高项,哪个更好考?

系规难度要小一些,但学习资源较少;高项难度大一些,但学习资源较多,二者各有优缺点。 偏管理方向考虑高项,偏运维方向考虑系规;没有计算机基础和相关经验,选择高项会更容易理解知识点&#xff1…

JAVA开发 基于最长公共子序列来计算两个字符串之间的重复率

计算两个字符串之间的重复率 最长公共子序列实现代码 最长公共子序列 基于最长公共子序列(Longest Common Subsequence, LCS)的重复率的中心逻辑是首先找到两个或多个序列中同时出现的、不一定连续但保持相对顺序的最长子序列,然后计算这个最…

如何使用Unity XR Interaction Toolkit

使用环境: Unity2021.3.21f XR Interaction Toolkit v3.0.0 各类函数可用的: 简单项目配置: 第一步,导包(samples可以不用导这么多,两个就够了): 第二步,构建场景&a…

【ZYNQ】GPIO 与 AXI GPIO

在嵌入式开发中,GPIO 是最常见的外设。GPIO 是 General Purpose I/O 的缩写,译为通用输入/输出。GPIO 用于连接外部设备,例如按键、传感器等,实现数字信号的输入或输出功能。本文主要介绍 Zynq GPIO 的基本概念,并对比…

SpringBoot 实现私钥解密 前端的公钥加密内容

目录 一、前端公钥加密 二、后端私钥解密 一、前端公钥加密 Nextjs 前端实现RSA公钥加密 JSEncrypt加载问题解决-CSDN博客 二、后端私钥解密 import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PrivateKey; import java.security.spec.…

表现层框架设计之表现层设计模式_3.MVVM模式

1.MVVM模式 MVVM模式正是为解决MVP中UI种类变多,接口也会不断增加的问题而提出的。 MVVM模式全称是模型-视图-视图模型(Model-View-ViewModel),它和MVC、MVP类似,主要目的都是为了实现视图和模型的分离,不…

深度学习之基于Yolov3的行人重识别

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 行人重识别(Person Re-Identification,简称ReID)是计算机视觉领域…

新品:LoRa扩频调制SOC无线模块-内置ARM、工业级晶振

LoRa-STM32WLE5是思为无线最新研发的一款SOC无线模块,模块主芯片采用了ST 公司的STM32WLE5芯片研发。模块采用LoRa调制,内置工业级晶振,并基于高性能的ArmCortex-m4 32位RISC核心,工作频率高达48 MHz。这个核心实现了一套完整的DS…

项目十二:简单的python基础爬虫训练

许久未见,甚是想念,今日好运,为你带好运。ok,废话不多说,希望这门案例能带你直接快速了解并运用。🎁💖 基础流程 第一步:安装需要用到的requests库,命令如下 pip inst…

【漏洞复现】智慧校园(安校易)管理系统 FileUpProductupdate.aspx 任意文件上传漏洞

0x01 产品简介 "安校易"是银达云创公司基于多年教育市场信息化建设经验沉淀,经过充分的客户需求调研,并依据国家"十三五”"教育信息化建设规范而推出的综合互联网教育信息化解决方案。“安校易“以物联网技术为基础,以学…

【Python小案例】Python+mysql+PyQt5健康体检报告查询

下载安装Python3.7.8 python官网:https://www.python.org/ PyQt5配置 安装PyQt5 pip install PyQt5pip install qt5_toolspytcharm创建项目 配置外部工具 QTDesigner的Arguments语句不用填 QTDesigner的Working directory语句:$ProjectFileDir$ Pyuic的Argume…

【职场心灵伴侣】文心一言智能体

【文心一言】智能体 写在最前面名称和简介:职场心灵伴侣AI生成头像添加工具智能体调优 🌈你好呀!我是 是Yu欸 🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~ 🚀 欢迎一起踏上探险之旅,挖掘无限…

智能农业时代:智能生态网络与数据流通的融合

随着科技的不断进步,智能农业已经成为现代农业发展的重要趋势。智能生态网络(IEN)作为一种集成化的解决方案,通过整合先进技术和数据要素流通,为智能农业的发展提供了强大的动力。在本文中,我们将探讨IEN在…

鸿蒙开发配置官方地图

一共需要配置 p12 p7b cer csr 四个文件 p12文件配置 注意创建文件名必须是.p12 到AGC创建项目 AppGallery Connect 添加自己的项目名称 我没有开启 暂时不需要 看个人需求 下载刚创建的cer证书 回到我的项目中 点击刚创建的项目 点击这里 四个文件齐全了 "metadata&qu…

C++初阶之深入模板

一、非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。 非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成…

基于STM32实现智能空气质量监测系统

目录 文章主题环境准备智能空气质量监测系统基础代码示例:实现智能空气质量监测系统 配置传感器并读取数据数据处理与显示数据存储与传输应用场景:室内环境监测与空气质量控制问题解决方案与优化收尾与总结 1. 文章主题 文章主题 本教程将详细介绍如何…

如何在 Ubuntu 24.04 (桌面版) 上配置静态IP地址 ?

如果你想在你的 Ubuntu 24.04 桌面有一个持久的 IP 地址,那么你必须配置一个静态 IP 地址。当我们安装 Ubuntu 时,默认情况下 DHCP 是启用的,如果网络上可用,它会尝试从 DHCP 服务器获取 IP 地址。 在本文中,我们将向…