You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter 3.24.2中pin_code_fields包因TextTheme.button移除致构建失败的解决问询

Flutter 3.24.2 下 pin_code_fields 因 TextTheme.button 移除导致构建失败的解决方案

已知修复情况

目前pin_code_fields官方最新版本(包括7.4.0)仍未适配Flutter 3.24的变更——TextTheme.button已被正式移除,包维护者暂未发布修复版本。

安全手动修改方案(避免权限问题&持久化)

直接修改.pub-cache里的文件会遇到权限问题,且更新包后修改会丢失,推荐以下两种持久化方案:

方案1:用 dependency_overrides + Patch 修复(推荐)

  1. 在项目根目录新建patches文件夹,创建pin_code_fields_fix_texttheme.patch文件,写入以下内容:
diff --git a/lib/src/pin_code_fields.dart b/lib/src/pin_code_fields.dart
--- a/lib/src/pin_code_fields.dart
+++ b/lib/src/pin_code_fields.dart
@@ -668,7 +668,7 @@ class PinCodeTextField extends StatefulWidget {
           ),
           style: TextStyle(
             fontSize: widget.textStyle?.fontSize ?? 20,
-            color: Theme.of(context).textTheme.button!.color,
+            color: Theme.of(context).textTheme.labelLarge?.color ?? Theme.of(context).colorScheme.onPrimary,
             fontWeight: widget.textStyle?.fontWeight ?? FontWeight.w500,
           ),
         ),

(如果报错行号不是668,直接定位到报错的代码行替换即可,labelLarge是Flutter官方指定的button替代属性,符合Material 3设计规范)

  1. 在pubspec.yaml中添加依赖覆盖和补丁配置:
dependency_overrides:
  pin_code_fields:
    hosted: https://pub.dev
    version: 7.4.0
    patch:
      - path: patches/pin_code_fields_fix_texttheme.patch
  1. 执行flutter pub get,补丁会自动应用到包中。

方案2:本地依赖修改包源码

  1. 从pub.dev下载pin_code_fields 7.4.0的源码,解压到项目内的packages文件夹(比如./packages/pin_code_fields)
  2. 打开./packages/pin_code_fields/lib/src/pin_code_fields.dart,找到报错的代码行:
    将color: Theme.of(context).textTheme.button!.color,替换为color: Theme.of(context).textTheme.labelLarge?.color ?? Theme.of(context).colorScheme.onPrimary,
  3. 修改pubspec.yaml中的依赖为本地路径:
dependencies:
  pin_code_fields:
    path: ./packages/pin_code_fields
  1. 执行flutter pub get完成配置。

替代方案

如果不想修改第三方包,可以选择维护更活跃的替代PIN码输入组件:

  • pin_code_text_field:适配最新Flutter版本,支持Material 3样式
  • flutter_pin_code_fields:轻量简洁,更新及时

内容的提问来源于stack exchange,提问作者Anoch Dissanayake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 00:45:04