Flutter 填坑录 (不定时更新)
一,内存爆表 > 图片缓存
/// State基类
class BaseState<T extends StatefulWidget> extends State<T>withAutomaticKeepAliveClientMixin,WidgetHelper,DialogHelper,EventListener {@mustCallSupervoid initState() {if (isListenEvent()) {EventManager.instance.listen(this);}//指定图片缓存大小,默认是1000PaintingBinding.instance.imageCache.maximumSize = 10;super.initState();LogEvent.onPageStart('${this}');}@mustCallSupervoid dispose() {super.dispose();deactivate();// 清理缓存PaintingBinding.instance.imageCache.clear();LogEvent.onPageEnd('${this}');if (isListenEvent()) {EventManager.instance.cancel(this);}}
二,iOS 字体缩小/消失/挤出屏幕等问题
import 'dart:math' as math;import 'package:flutter/material.dart';class NoScaleTextWidget extends StatelessWidget {final Widget child;const NoScaleTextWidget({Key key,@required this.child,}) : super(key: key);@overrideWidget build(BuildContext context) {return MaxScaleTextWidget(max: 1.0,child: child,);}
}class MaxScaleTextWidget extends StatelessWidget {final double max;final Widget child;const MaxScaleTextWidget({Key key,this.max = 1.2,@required this.child,}) : super(key: key);@overrideWidget build(BuildContext context) {var data = MediaQuery.of(context);var scale = math.min(max, data.textScaleFactor);return MediaQuery(data: data.copyWith(textScaleFactor: scale),child: child,);}
}class ScaleTextWidget extends StatelessWidget {final double scale;final Widget child;const ScaleTextWidget({Key key,@required this.scale,@required this.child,}) : super(key: key);@overrideWidget build(BuildContext context) {var data = MediaQuery.of(context);var scale = this.scale ?? data.textScaleFactor;return MediaQuery(data: data.copyWith(textScaleFactor: scale),child: child,);}
}
@overrideWidget build(BuildContext context) {loadData();return MaterialApp(builder: (ctx, w) {return MaxScaleTextWidget(max: 1.0,child: w,);},theme: ThemeData(primarySwatch: Colors.blue,textTheme: TextTheme(title: TextStyles.titleStyle, button: TextStyles.titleStyle),),home: homePage,
三,未授权导致图片保存失败
//每次都提示图片已保存成功,相册里并没有图片void _onSaveImage() async {print("_onImageSaveButtonPressed");final QrPainter painter = QrPainter(data: _appDownloadLink,color: const Color(0xff222222),emptyColor: const Color(0xffffffff),version: 4,gapless: true,);final ByteData imageData = await painter.toImageData(300.0);final result = await ImageGallerySaver.save(imageData.buffer.asUint8List());if (result) {toast("二维码已成功保存到手机相册");} else {toast("二维码保存到手机相册失败, 请查看App权限");}}
@overridevoid initState() {super.initState();
// 先要授权访问相册PermissionHandler().requestPermissions(<PermissionGroup>[PermissionGroup.storage, // 在这里添加需要的权限]);}
相关文章:
Flutter 填坑录 (不定时更新)
一,内存爆表 > 图片缓存 /// State基类 class BaseState<T extends StatefulWidget> extends State<T>withAutomaticKeepAliveClientMixin,WidgetHelper,DialogHelper,EventListener {mustCallSupervoid initState() {if (isListenEvent()) {EventMa…...
如何提高webpack的构建速度?
一、背景 随着我们的项目涉及到页面越来越多,功能和业务代码也会随着越多,相应的 webpack 的构建时间也会越来越久 构建时间与我们日常开发效率密切相关,当我们本地开发启动 devServer 或者 build 的时候,如果时间过长ÿ…...
Linux:实用操作
Linux:实用操作 1. 各类小技巧1.1 controlc(ctrl c) 强制停止1.2 可以通过快捷键:control d(ctrl d),退出账户的登录1.3 历史命令搜索1.4 光标移动快捷键 2. 软件安装2.1 介绍2.2 yum命令(需要root权限)在这里插入图片描述 3. systemctl4.…...
【Linxu工具】:vim使用及简单配置
朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux工具:vim的使用,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从…...
众和策略:题材股什么意思?
题材股是股票商场上的一个术语,许多刚接触股票出资的人可能对它不太熟悉。那么,题材股什么意思呢?在本文中,咱们将从多个角度剖析这个问题,帮忙读者更好地了解。 一、什么是题材股 题材股是指某个工作或主题的股票集结…...
npm 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
一、报错: npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确, 然后再试一次。 所在位置 行:1 字符: 1npm init -y~~~ CategoryInfo : ObjectNotFo…...
港联证券:短债基金收益?
跟着人们对理财的需求不断增加,短债基金成为了许多出资者关注的焦点。那么,短债基金可以带来什么样的收益呢?本文将从多个角度剖析短债基金的收益。 一、短债基金的概念 短债基金是一种基金类型,风险相对较低,一般出资…...
每日一题 2316. 统计无向图中无法互相到达点对数(中等,图连通分量)
题目很简单,只要求出每个连通分量有多少个节点即可首先通过建立一个字典来表示每个节点的邻接关系遍历每个节点,并通过邻接关系标记在当前连通分量内的所有的点,这样就可以知道一个连通分量内有多少个点在这里我陷入了一个误区,导…...
Centos 无法连接 WIFI
环境 硬件:ASUS X550VC, x86_64系统:CentOS 7.9 现象 系统安装后无法上网,终端命令提示符为shadow3dlocalhost,我的疑问是这里不是应该显示我的主机名吗,为什么是localhost呢?但是有些时候,又…...
whois人员信息python批处理读入与文本输出
使用pytho读取一个ip列表文本,批量获取whois输出并写入到一个文本 import socketif __name__ __main__:# 江苏电信DNS地址mylog open(whois.log, mode a,encodingutf-8)for line in open("ip.txt"):s socket.socket(socket.AF_INET, socket.SOCK_STR…...
阿里云服务器续费流程_一篇文章搞定
阿里云服务器如何续费?续费流程来了,在云服务器ECS管理控制台选择续费实例、续费时长和续费优惠券,然后提交订单,分分钟即可完成阿里云服务器续费流程,阿里云服务器网aliyunfuwuqi.com分享阿里云服务器详细续费方法&am…...
TCP的三次握手、四次挥手!就像打电话一样简单!
目录 学前必会 三次握手详解 和打电话一样 为什么必须要三次? 四次挥手详解 和挂电话一样 为什么要四次挥手? 第四次为何要等待 2*MSL? 相关面试题: 说一下三次握手、四次挥手的过程三次握手四次挥手的目的是什么&#x…...
自动巡查、自动换充电……浙江这两台无人机“巢穴”派大用场
浙江省积极探索利用高科技的无人机技术提高森林防火效率。在杭州市西湖区的西山国家森林公园和绍兴市柯桥区的大香林风景区,部署了两台复亚智能全自动无人机飞行系统,实现了火情的自动检测、定期自动巡查以及迅速响应。该技术的应用标志着杭州从传统的“…...
数据结构题型20-第七章 查找
文章目录 1 考察重点2 知识框架3 考察重点4 顺序查找和折半查找4.1 顺序查找4.1.1 一般线性表的顺序查找4.1.2 有序表的顺序查找 4.2 折半查找4.3 分块查找 1 考察重点 2 知识框架 3 考察重点 4 顺序查找和折半查找 4.1 顺序查找 4.1.1 一般线性表的顺序查找 4.1.2 有序表的顺…...
页面查询多项数据组合的线程池设计 | 京东云技术团队
背景 我们应对并发场景时一般会采用下面方式去预估线程池的线程数量,比如QPS需求是1000,平均每个任务需要执行的时间是t秒,那么我们需要的线程数是t * 1000。 但是在一些情况下,这个t是不好估算的,即便是估算出来了&…...
设计模式:策略模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)
简介: 策略模式,它是一种行为型设计模式,它定义了算法族,分别封装起来,让它们之间可以互相替换。策略模式让算法的变化独立于使用算法的客户,降低了耦合,增加了系统的可维护性和可扩展性。 策…...
详解如何快速查询Node.js版本信息(六种方法)
Node.js是一款基于Chrome V8引擎的快速、轻量级的JavaScript运行时。随着应用程序规模越来越庞大,Node.js版本的更新也日益频繁。这篇文章旨在帮助开发者们快速查询Node.js版本信息。 一、使用node命令查询版本信息 node命令提供了一个参数-v,可以在控…...
YOLOV8目标检测——最全最完整模型训练过程记录
文章目录 前言1 下载yolov8([网址](https://github.com/ultralytics/ultralytics))2 配置conda环境3 用pycharm打开文件3 训练自己的YOLOV8数据集4 run下运行完了之后没有best.pt文件5 导出为onnx文件6 yolov8应用完整案例(免费且包含源代码、…...
【C语言】用函数实现模块化程序设计
前言:如果把所有的程序代码都写在一个主函数(main函数)中,就会使主函数变得庞杂、头绪不清,使阅读和维护程序变得困难。此外,有时程序中要多次实现某一功能,如果重新编写实现此功能就会使得程序冗长、不精炼。 &#x…...
忆联SR-IOV解决方案:助力云数据中心节能提效,向“绿”而行
随着AI时代的到来,云数据中心如何实现节能提效正成为热门话题。其中,SR-IOV技术凭借灵活度高以及可节约虚拟化业务算力等优势,是打造绿色低碳云数据中心的重要解决方案之一。 一、什么是SR-IOV 技术 SR-IOV 是由国际组织 PCI-SIG 组织定义的…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...
