前端开发

CSS hover文字加粗导致的元素宽度变化

0 条评论 前端开发 css 无标签 Kerrinz
记录一下,2025-03需求文本元素,初始时是 400 字重,鼠标移上去时变成 700 字重。问题由于很多字体的 400 字重和 700 字重的字符宽度不一致,鼠标移上去时 400 字重变成 700 时可能文本会抖动(即元素宽度变大了一点)。优化实现用透明不可见的 700 字重的文本撑开元素宽度,然后 400 字重的文本用绝对定位覆盖住元素即可。 <style> .me...

Flutter TextField 弹出软键盘导致界面重绘的问题

0 条评论 Flutter 无标签 Kerrinz
记录于2025-03-23在做类似社区发表评论的功能,用了 TextField 作为输入框,但是当弹出输入法时,界面在疯狂重绘,甚至其他页面也在疯狂重绘,导致部分元素重新播放了动画(例如带淡入动画的图片就会闪烁)、甚至重新调用了网络请求,直到输入法完全弹出时停止,以及输入法收起时也是上述情况。然后我试着给当前页面和上级页面的 build 函数中使用 print 调试随便打印输出个文本,发现在...

flutter build apk 出现 compileReleaseJavaWithJavac 的问题

0 条评论 默认分类 Flutter 无标签 Kerrinz
其实也很明显,这个库依赖 Java 17。但我目前的 JDK 就是 17 版本的,我也尝试更新到 JDK 22,无用。尝试 flutter clean 后重新 flutter build apk,无用。按照标准重新配置了 JDK 环境变量,无用。折腾无果,最后在 stackoverflow 上找到一个回答:点击跳转原来是因为 flutter 使用的 Java 版本默认是 Android St...

浅析JS中的闭包

闭包是什么且看官方的解释:闭包(closure)是一个函数以及其捆绑的周边环境状态(lexical environment,词法环境)的引用的组合。——《MDN》初次看到这个解释确实晦涩难懂,毕竟它还涉及到了作用域链和执行上下文环境。其捆绑的周边环境状态 指的就是执行上下文,可以简单理解为代码执行的环境,存放了对应的变量。执行上下文的特性之一就是:当一个函数被调用结束之后,其执行上下文环境就...

vite + typescript判断开发和生产环境的方式

0 条评论 Vue 前端开发 vue vite typescript Kerrinz
前言以前我用的框架是vue + webpack,使用process.env.NODE_ENV来辨别开发环境和生产环境,但是最近开始用vue3 + vite + typescript的组合,发现这个方法不管用了,看了下错误提示,原来是因为typescript需要额外加库和规则。由此顺便整理一下vite + typescript判断环境的写法。

Flutter适配暗黑模式的实践

随着SDK版本的迭代,Flutter官方已经很好地支持了暗黑模式了,想适配暗黑模式并非是一件难事。本文从最简单基础的写法开始,逐步引入provider、shared_preferences完善暗黑/夜间模式的适配,并提供Demo演示和源代码。

Flutter BouncingScrollPhysics回弹无效、回弹不会恢复原位

0 条评论 Flutter 前端开发 Flutter Kerrinz
ListView内容不足以撑满全屏的情况下:ListView.builder( physics: AlwaysScrollableScrollPhysics(parent: BouncingScrollPhysics()), // ListView内容不足也能搞出回弹效果 ... );如果是普通的Scaffold套SingleChildScrollView,而内容却不是ListVie...

Flutter IOS权限配置无效,info.plist不生效的问题

前言我的Flutter项目有保存图片功能,需要用到相册的访问权限,在IOS那边搞了半个下午的权限配置还是获取不到权限,记录下解决方式。本文所用权限依赖插件:permission_handler,版本8.1.6我仔细排查,网上各种搜索,info.plist配置确定是没有问题的,就很谜。Podfile也参照一些文章配置了也一样不生效(后来才发现有坑)??之后卸载了,重新Build也还是一样。并且...

关于OAuth2.1 PKCE利用crypto的sha256哈希结果转换base64url计算结果不一致的问题(Flutter)

前言最近在写第三方flutter app并抓包分析某原生app登录逻辑的时候,遇到了使用OAuth2.1 PKCE授权码模式的登录方式,该模式下需要将code_verifier先进行sha256哈希后再进行base64(URL-Save) 编码成最终的code_challenge。OAuth2.1 PKCE授权码模式详解:https://shanhy.blog.csdn.net/articl...

Flutter调用JSON序列化出现type 'String' is not a subtype of type 'MapString, dynamic'

问题情况本来按照书上的思路都封装好了Dio,半自动生成了Json Model,结果在实际应用上出现了以下异常:Unhandled Exception: type 'String' is not a subtype of type 'Map<String, dynamic>'