移动开发
React Native依赖冲突错误
在运行npx react-native doctor时出现以下错误 npm 错误代码ERESOLVE npm 错误ERESOLVE无法解析 npm 错误 npm 错误 在解析时: undefined@undefined npm 错误 找到: [email protected] npm 错误node_modules/react-native npm 错误 peer react-native@"*" 来自 @react-native-community/[email protected] npm 错误 nod
当使用按钮时,带有.viewAligned的 scrollTargetBehavior的 SwiftUI ScrollView无法滚动到正确的索引
我有一个水平滚动视图,里面的单元格是 (1-8),上方还有一排对应的按钮。滚动视图使用 .viewAligned 滚动目标行为,边缘能看到两侧部分可见的相邻单元格。 预期行为: 点击索引为N 的按钮应滚动到索引为N 的单元格 手动滚动到索引为N 的单元格应选中索引为N 的按钮 实际行为: 手动滚动工作正常——按钮选中状态与当前可见的单元格同步正确 按钮点击有问题: 点击按钮1(索引0)→ 滚动到单元格1 ✅ 点击按钮2(索引1)→ 不发生滚动,但按钮2 被选中,右边能看到单元格2 的边缘 点击按钮3(索引
如何保存yt-dlp下载的输出?
我写了一个程序来下载YouTube视频: import yt_dlp URL = "https://www.youtube.com/watch?v=YV2tUZIZ3Bs" ydl_opts = { "format": f"bestvideo[height<=144]", "merge_output_format": "mp4", "outtmpl": "/home/lankergd/PycharmProjects/LankerTools/films_test/yez.mp4", "quiet": Fal
Flutter Firestore:在iOS和 Android上都出现 [cloud_firestore/permission-denied],尽管规则已开放(如果确实如此)
我在Flutter应用中写入/读取Firestore时,遇到了持续性的 [cloud_firestore/permission-denied] 错误。这在Android和 iOS两个平台上都发生。 我到目前为止尝试过的: Firebase规则(Rules):为了测试,我把规则设为公开,并且我已经 发布 rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document
Jetpack Compose:DropdownMenu在 Compose对话框中忽略锚点,直接出现在屏幕底部
我正在尝试实现一个自定义的 Jetpack Compose 对话框,其中包含两个带有各自锚定DropdownMenu的元素: 一个带向下箭头图标的标题行,单击时应触发一个菜单。 一个OutlinedTextField,输入超过3 个字符后应自动触发一个建议菜单。 问题: 尽管将每个元素都包裹在Box中以作为锚点,DropdownMenu仍然不会出现在相应元素的下方。相反,它似乎忽略了布局层级,在对话框的左上角(或屏幕)渲染。 我尝试过的做法: 将IconButton与 TextField分别包装在各自的B
iOS:获取软键盘是否可见的现代方法
使用以下这段代码,我们可以对软键盘何时可见/不可见有一个相当清楚的判断: let showingObserver = NotificationCenter.default.addObserver( forName: UIResponder.keyboardWillShowNotification, object: nil, queue: .main ) { [weak self] _ in // keyboard is (about to be) shown } let hidingObserver =
Flutter Hive错误:名为 'cartbox' 的盒子已打开,且类型为Box
我在 main.dart 打开了Hive盒子 void main() async { WidgetsFlutterBinding.ensureInitialized(); await Hive.initFlutter(); Hive.registerAdapter(ProductAdapter()); await Hive.openBox('cartbox'); await Firebase.initializeApp(); runApp(const MyApp()); } 然后在 Ca
SwiftUI的 ToolbarItem中的无边框按钮存在不可点击的内边距区域
SwiftUI工具栏项:按钮边框与内边距虽可见,却不可点击 iOS 18+ / Xcode 26 - 当在 ToolbarItem 与一种 Button 风格的 .borderedProminent 一起使用时,按钮会显示边框和内边距,但这些区域对点击没有响应。只有红色矩形内部的正中间会触发操作。如何解决? 代码示例 NavigationStack { ContentView() .toolbar { ToolbarItem(placement: .bottomBar) { Button("Save")
原生HTML弹出框在Safari/iOS上不起作用
我有一个React应用,使用 原生HTML弹出框。 我的做法是: 渲染一个按钮,其作用只是通过useState来切换可见性。 渲染弹出容器,至少具备以下属性: ```js ``` - 在useEffect中监听来自父组件的可见性状态,并在ref上调用togglePopover: ```js useEffect(() => { if (open) { popoverRef.current && popoverRef.current.showPopover(); } else { popoverRef.cur
如何将图片按钮、操作和导航链接组合在一起?
我在尝试理解如何让按钮在执行一个动作的同时导航到一个新的界面,如下所示(下面的代码在一个简单的结构体中): Button(action: { print("I am new to SwiftUI!") buttonFunction() }) { NavigationLink { NewUI() } label: { Image(buttonImage) .resizable() .frame(maxWidth:50, maxHeight:50) } 有了上面的代码,我能够让导航到NewUI的动作执行,但按
我的Xcode桥接头文件似乎没有包含我的Swift类
我认为我已经把所有事情都按部就班地做完了。 我在我的Objective-C项目中添加了一个小的Swift文件。这是项目中的代码,而不是框架中的代码,因此我没有使用 public 关键字: import Foundation @objc TestClass: NSObject { @objc init(){} } 添加这个文件后会提示创建bridging header,并且它应该把TestClass添加进去。 我把import语句添加到了Objective-C的 .m文件中。没有产生错误,所以这个文件应该是
如何通过Java Print API更改将CUPS注册为打印作业发起者的用户?
我正在使用Java打印API [1],通过CUPS打印到一台打印机。 我们在Java客户端使用Java 8,CUPS的版本是2.2.6。 Java进程与CUPS守护进程在同一台服务器上,后者注册了所有打印机。 我当前面临的问题是,无法更改在CUPS中注册的请求打印作业的用户。 更具体地说,我无法改变以下命令返回的第二列的值:lpstat -W all -o PRINTERDNS 从Java API出发,我指定了 RequestingUserName 属性(ipp: requesting-user-name
为什么不强制实现Sendable协议
在下面的代码中,我有 actor BankAccount 和 non-sendable 类型的 AlternativeBankAccount。两者的主体相同。 我不明白为什么在把 AlternativeBankAccount 传给 charge 函数时,编译器不会触发警告。异步上下文从 random 的主体切换到 charge,我原本以为这会强制 charge 的所有参数具备可发送性(sendable)。 如果有人能给我解释,我会非常高兴!提前感谢! 日志: 1 - <_NSMainThread: 0x6
Android上 React Native CLI的 DateTimePicker滚轮未显示为浅色主题
我在一个React Native应用中使用 @react-native-community/datetimepicker。我想使用旋转样式的时间选择器并采用浅色主题。 我的目标是让界面保持简洁、干净,并与浅色主题保持一致。 然而,即使将themeVariant="light" 和textColor="#000" 设置好,Android上的旋转选择器仍然跟随系统的深色主题。 以下是我的代码: { showTimePicker && (
永久禁用Expo的开发者工具按钮
解决方案 你可以在应用启动时通过调用原生的DevMenuPreferences模块以编程方式禁用它: // app/_layout.tsx (or your root file) import { requireOptionalNativeModule } from 'expo'; const DevMenuPreferences = requireOptionalNativeModule('DevMenuPreferences'); DevMenuPreferences?.setPreferencesA
在Android 16上,后台状态下调用CameraManager.getCameraCharacteristics() 时崩溃,抛出IllegalArgumentException: Unable to find task ID
以下崩溃仅在Android 16设备上且应用处于后台状态时发生(完全基于Firebase Crashlytics的统计,请查看附带的截图)。 我的应用是一款使用前台服务的视频录制应用,允许在应用处于后台时继续工作(使用摄像头)。 崩溃通过Firebase Crashlytics上报,因此我还无法重现问题或提供一个最小可复现的示例项目。 当前应用大约有60万安装用户。 据Crashlytics显示,截至目前该问题已影响109名用户(共319次事件)。 迄今为止,这个问题发生得很少,我也无法在同一设备上重现。
FirebaseMessagingService在 Job尚未完成时就取消了CoroutineScope
在下面的代码片段中,我试图在 onMessageReceived() 中执行挂起函数 MessageHandler.handleMessage(),然而该函数没有完成,因为 ioScope 被取消,原因是在调用了 onDestroy()。 class FcmService : FirebaseMessagingService() { companion object { private const val FCM_KEY_MESSAGE = "message" } private val conversa
flutter_blue_plus在使用flutter run时能检测到蓝牙设备,但在Google Play商店发布的版本(AAB,SDK 35)中却检测不到
当我在本地使用 flutter run 运行我的Flutter应用时,蓝牙扫描工作得非常好——所有附近的设备都能被检测到。然而,当我将应用发布到Google Play商店(封闭测试,发布AAB)时,根本检测不到任何蓝牙设备,即使我在设备设置中手动授权了所有权限。 我最初以为问题是由我设置的UUID过滤器引起的(只扫描具有特定UUID的设备)。我移除了该过滤器并推送了新版本。更新后的版本在本地通过 flutter run 测试时运行正常,但Play商店的版本仍然检测不到任何设备。 以下是我的代码。如果你需要
iPadOS 26在弹出视图中浮动数字键盘时崩溃
按照下面的示例代码进行构建,在文本输入框中输入任意内容(确保数字键盘是弹出式,文本键盘是浮动的)。然后在工作表中多次点击文本字段之外的区域。 这将导致崩溃: *** 由于未捕获的异常 'NSGenericException' 导致应用终止,原因:无法激活锚点为 与 的约束,因为它们没有共同祖先。约束或其锚点是否引用自不同视图层级中的项?这是非法的。' 由于未捕获的NSException类型而终止 CoreSimulator 1051.17.8 - 设备:iPad Pro 13英寸 (M5) (655000
在macOS 26下,如何解决NSRulerView绘制时与窗口标题栏冲突的问题?
将垂直标尺附加到滚动视图时,分隔线会一直绘制到窗口的顶部(macOS Tahoe): 请将其与早前版本的工作方式比较,例如macOS Sequoia(15.7.2): 这是预期行为吗?能修复吗? 这些截图是使用一个极简的SwiftUI应用生成的,该应用嵌入了NSTextView和 NSRulerView,使用NSViewRepresentable,见下文。 struct CustomEditor: NSViewRepresentable { @Binding var text: String func m