Flutter 3.29.1 开始 iOS 编译 Xcode 报错 DerivedData 相关问题Xcode ⇒ File ⇒ Workspace Settings
Derived Data 修改为 CustomLocation,目录尾部补加2创建新目录
Android Studio Ladybug 升级后 Flutter Android 构建开始报错 JDK 编译错误因为新版本AS自带捆绑的JDK版本超过了Flutter项目使用的JDK版本,需要强制转回项目所用JDK版本
1flutter config --jdk-dir [JDK 17 路径]
Flutter 开屏页后黑屏一阵才进入页面Info.plist文件中查找键值对
12<key>UILaunchStoryboardName</key><string>LaunchScreen.storyboard</string>
改为
12<key>UILaunchStoryboardName</key><string>LaunchScreen&l ...
iOS 常用权限iOS应用开发中常见的权限列表及其描述:
权限 (Info.plist键名)
名称
描述
NSCameraUsageDescription
相机权限
访问设备的相机,用于拍摄照片或视频。
NSPhotoLibraryUsageDescription
照片权限
访问设备相册及保存图片和视频。
NSPhotoLibraryAddUsageDescription
添加照片到相册
保存照片或视频到相册
NSMicrophoneUsageDescription
麦克风权限
访问麦克风录制音频
NSLocationWhenInUseUsageDescription
使用期间位置权限
允许应用在前台运行时获取用户位置
NSLocationAlwaysUsageDescription
始终位置权限
应用可以始终获取用户位置,包括后台
NSLocationAlwaysAndWhenInUseUsageDescription
始终与使用期间位置权限
允许应用始终(前台和后台)访问用户位置
NSPhotoLibraryUsageDescriptio ...
📌 需求背景Flutter 默认的 BottomNavigationBar 在页面切换时会销毁不可见的页面并重新创建新的页面,目的是优化性能和减少内存占用。但实际业务中,这种默认行为经常带来不便:页面状态会丢失,切换回来时需要重新初始化,影响用户体验。因此需要探索一种合适的状态持久化方案。
🧪 多种方案对比实验经过调研和实验,整理了以下几种方案:
组件
AutomaticKeepAliveClientMixin
PageStorage
IndexedStack
Offstage
原理
通过 KeepAlive 保持 State
存储 PageStorageBucket
同时保持所有页面的 State
隐藏但保留页面State
适用场景
PageView / ListView 内的子项
记录滚动位置
BottomNavigationBar / TabView
通用跨页面状态保存
跨页面保存状态
❌ 否(仅在 PageView 或 ListView 内生效)
✅ 是
✅ 是
✅ 是
懒加载
✅ 是(按需加载)
❌ 否
❌ 否(一次性加载所有页 ...
算法1.牛牛正在买书,每本书都有名字和价格,牛牛想把书按照价格升序排序
输入描述
第一行输入一个正整数 n ,表示书的数量。后续每行都输入一个字符串 str 和一个正整数 p 表示书价格。
输出描述
把书名按照价格升序输出。
输入
3The Nowcoder 100Abook 20BBook 300
输出
AbookTheNowcoderBBook
12345678910111213141516171819202122232425262728293031323334353637383940import java.util.Scanner;import java.util.List;import java.util.ArrayList;import java.util.Comparator;class Book { String name; int price; public Book(String name, int price) { this.name = name; this.price = pr ...
Flutter/Dart 学习「.」和「..」调用「.」返回的则是该方法返回的值调用「..」后返回的相当于是 this
生命周期StatelessWidget 无状态组件无状态组件不可变,它的属性不能变化,所有值都是最终的,其生命周期只有build这个过程。其构造方法通常只会在三种情况下被调用:
小组件第一次被插入树中
小组件的父组件改变其配置
它所依赖的 InheritedWidget 发生变化时
StatefulWidget 有状态组件
createState该函数为 StatefulWidget 中创建 State 的方法,当 StatefulWidget 被创建时会立即执行 createState。createState 函数执行完毕后表示当前组件已经在 Widget 树中,此时有一个非常重要的属性 mounted 被置为 true
initState该函数为 State 初始化调用,只会被调用一次,因此,通常会在该回调中做一些一次性的操作,如执行 State 各变量的初始赋值、订阅子树的事件通知、与服务端交互,获取服务端数据后调用 setState 来设置 St ...
🚀 需求背景在页面设计中,我们需要一个可切换状态的按钮,并且需要在按钮的右下角添加一个带圆角的不规则等腰三角形作为状态指示器。经过调研,发现Flutter现有组件无法直接满足需求,因此决定通过强大的 Canvas 自定义绘制来实现。
🎨 Canvas 基础概念Flutter 提供了强大的 Canvas API,能绘制各种自定义图形。使用 Canvas 绘图,需要明确两个核心概念:
画布(Canvas):Flutter中二维坐标系的原点位于左上角,右侧为 X 轴正方向,下方为 Y 轴正方向。
画笔(Paint):定义绘制的颜色、样式(填充或边框)和宽度等属性。
下面定义一个简单的画笔:
1234Paint _paint = Paint() ..color = Colors.white ..style = PaintingStyle.fill ..strokeWidth = 2;
🛠️ 自定义圆角三角形绘制思路我们需要绘制的图形由两部分组成:
圆角矩形:作为按钮底色的背景框。
带圆角的不规则三角形:作为按钮右下角的状态标识。
实现步骤为:
使用 RRec ...
系统安装Windows下载Windows可引导安装器制作
Windows11 TPM2.0 绕过shift+F10
123REG ADD HKLM\SYSTEM\Setup\LabConfig /v BypassTPMCheck /t REG_DWORD /d 1REG ADD HKLM\SYSTEM\Setup\LabConfig /v BypassSecureBootCheck /t REG_DWORD /d 1
Windows11 联网登陆绕过shift+F10
1oobe\bypassnro.cmd
Sonoma环境配置备忘 - macOS系统安装macOS的相关下载与安装官方说明已足够详细明了,除非是Hackintosh的玩法,后面会单独开文记录,在此不再赘述。
macOS 下载macOS 可引导安装器制作
系统设置常用指令
取消密码安全策略限制
12345# 取消4位数密码限制 pwpolicy -clearaccountpolicies# 更改密码passwd
允许安装任意来源的 App
12# APP安装开启任何来源sudo spctl --master-disable
禁止“Are you sure you want to open this application?”提示
1defaults write com.apple.LaunchServices LSQuarantine -bool false
禁用 crash reporter
1defaults write com.apple.CrashReporter DialogType -string none
禁止磁盘映像验证
123defaults write com.apple.frameworks.d ...