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 组织定义的…...
绿联DX4600 Pro vs DX4600:HDMI接口实测,NAS秒变家庭影院攻略
绿联DX4600 Pro HDMI实战:打造4K杜比家庭影院的完整指南 从存储中心到娱乐中枢的进化 当我在客厅电视上首次通过绿联DX4600 Pro的HDMI接口播放《沙丘》4K原盘时,那种扑面而来的沙粒质感与低频震动彻底改变了我对NAS功能的认知。这台原本安静待在书房角落…...
UR5机械臂避障实战:如何用包围盒快速过滤点云(附D435i/Kinect2配置模板)
UR5机械臂点云避障实战:包围盒滤波与多传感器适配指南 在工业自动化与机器人应用领域,UR5协作机械臂因其灵活性和安全性成为中小型工作单元的热门选择。但当机械臂需要与环境动态交互时,如何准确识别有效障碍物、过滤机械臂自身点云成为关键挑…...
Nginx-UI 终极安装指南:快速解决端口配置与访问问题
Nginx-UI 终极安装指南:快速解决端口配置与访问问题 【免费下载链接】nginx-ui Yet another WebUI for Nginx 项目地址: https://gitcode.com/gh_mirrors/ngi/nginx-ui Nginx-UI 是一个基于 Go 和 Vue 开发的现代化 Nginx 图形化管理工具,为运维人…...
新KS型单级单吸离心泵的设计(说明书+CAD图纸+调研报告+任务书+英文翻译)
新KS型单级单吸离心泵作为工业流体输送领域的核心设备,其设计聚焦于提升效率、降低能耗与延长使用寿命三大核心目标。该泵型通过优化叶轮几何结构与流道设计,显著减少流体在泵体内的能量损失,实现高效稳定的流量输出。其单级单吸结构简化了内…...
解决tomcat8-maven-plugin插件运行报错的完整指南(含常见错误排查)
解决tomcat8-maven-plugin插件运行报错的完整指南 最近在项目中使用tomcat8-maven-plugin插件时,遇到了不少令人头疼的问题。特别是那个经典的类加载器冲突错误,让不少开发者都踩过坑。本文将系统梳理这些常见问题,提供经过验证的解决方案&am…...
项目介绍 MATLAB实现基于RNN-XGBoost-CNN 递归神经网络(RNN)结合极限梯度提升(XGBoost)与卷积神经网络(CNN)进行股票价格预测的详细项目实例(含模型描述及部分示例代码)
MATLAB实现基于RNN-XGBoost-CNN 递归神经网络(RNN)结合极限梯度提升(XGBoost)与卷积神经网络(CNN)进行股票价格预测的详细项目实例 更多详细内容可直接联系博主本人 加v 我的昵称(nantangyuxi&…...
点云处理新思路:用Minkowski卷积替代传统3D卷积的5个理由
点云处理新思路:用Minkowski卷积替代传统3D卷积的5个理由 当处理点云数据时,传统3D卷积神经网络(3D CNN)常面临内存爆炸和计算冗余的困境。想象一下,你正在开发一个自动驾驶汽车的实时点云识别系统,传统3D卷积需要为整个空间分配内…...
同事.Skill出圈,打工的尽头是被AI蒸馏吗?
当你的技能被封装成一行行代码,你与AI同事之间,是竞争还是共生?最近职场圈最火的词:同事.Skill。简单说,就是把某个同事的核心工作能力——写周报、做PPT、处理数据、安排会议——变成一个可复用的AI技能包。其他同事安…...
OpenClaw 大结局——接入个人微信啬
本课概览 Microsoft Agent Framework (MAF) 提供了一套强大的 Workflow(工作流) 框架,用于编排和协调多个智能体(Agent)或处理组件的执行流程。 本课将以通俗易懂的方式,帮助你理解 MAF Workflow 的核心概念…...
Phi-3-mini-4k-instruct-gguf赋能课程设计:自动生成Multisim电路仿真报告
Phi-3-mini-4k-instruct-gguf赋能课程设计:自动生成Multisim电路仿真报告 1. 电子工程学生的文档困境 每次课程设计最头疼的是什么?不是画电路图,不是调参数,而是写那份永远写不完的实验报告。电子工程专业的学生都深有体会&…...
