当前位置: 首页 > news >正文

flutter3.7.12版本设置TextField的contextMenuBuilder的文字颜色

线上版本用的是flutter3.7.12,报了个bug,TextField长按后弹出一个空白框。
这个空白框点击是有事件的,很离奇,但是得解决。

首先看了看源码,TextField原本的属性toolbarOptions已过时,推荐使用contextMenuBuilder设置,就找了一下contextMenuBuilder的用法,普遍是以下代码

TextField(contextMenuBuilder: (BuildContext context, EditableTextState editableTextState) {return AdaptiveTextSelectionToolbar.buttonItems(anchors: editableTextState.contextMenuAnchors,buttonItems: editableTextState.contextMenuButtonItems.map((item) {return ContextMenuButtonItem(onPressed: item.onPressed,label: Text(item.label,style: const TextStyle(color: Colors.red), // 改这里),);}).toList(),);},
)

但是报错,3.7.12版本的lable只支持String,不支持Text。难道要更新版?
于是询问了chapt改为如下表达

 var items = editableTextState.contextMenuButtonItems;return AdaptiveTextSelectionToolbar(anchors: editableTextState.contextMenuAnchors,children: items.map((ContextMenuButtonItem item) {return TextButton(onPressed: item.onPressed,child: Text(item.lable,style:  TextStyle(color: BaseColors.textBlack_1b), // 自定义颜色),);}).toList(),);

跑通了,但是问题并没有被解决,经过测试发现 item.lable=null,那事件是怎么完成的呢?ContextMenuButtonItem内部有三个参数:onPressed,type,label。可以看到除了lable之外其他两个参数都有值,所以文字显示不出来是因为文字不存在。
于是做了个switch判断将ContextMenuButtonType枚举的所有类型都换成文字,解决了。

http://www.lryc.cn/news/620727.html

相关文章:

  • MixOne在macOS上安装碰到的问题
  • 解决SQL Server连接失败:Connection refused: connect
  • 苹果正计划大举进军人工智能硬件领域
  • 从0开始跟小甲鱼C语言视频使用linux一步步学习C语言(持续更新)8.14
  • 2025 电赛 C 题 发挥3 带数字编号的正方形识别 边长测量
  • [特殊字符]走进华为,解锁商业传奇密码
  • 通过网页调用身份证阅读器http websocket方法-湖南步联科技美萍MP999A电子————仙盟创梦IDE
  • 从根源到生态:Apache Doris 与 StarRocks 的深度对比 —— 论开源基因与长期价值的优越性
  • 审批流程系统设计与实现:状态驱动、灵活扩展的企业级解决方案
  • 实战指南|消防管理系统搭建全流程解析
  • OpenCV ------图像基础处理(一)
  • 【P81 10-7】OpenCV Python【实战项目】——车辆识别、车流统计(图像/视频加载、图像运算与处理、形态学、轮廓查找、车辆统计及显示)
  • 【OpenCV】Mat详解
  • 入门基础人工智能理论
  • 计算机视觉(opencv)实战二——图像边界扩展cv2.copyMakeBorder()
  • 论,物联网日志系统架构如何设计?
  • AI增强SEO关键词表现
  • Postman 平替 技术解析:架构优势与实战指南
  • 考研408《计算机组成原理》复习笔记,第五章(2)——CPU指令执行过程
  • 使用 Docker 部署 PostgreSQL
  • 考研408《计算机组成原理》复习笔记,第四章(3)——指令集、汇编语言
  • Java设计模式之《策略模式》
  • Effective C++ 条款41:理解隐式接口和编译期多态
  • 应用系统连达梦数据库报“服务器模式不匹配”的根源与修复方案
  • 使用colmap自制3DGaussian_Splatting数据集
  • BotCash:GPT-5发布观察 工程优化的进步,还是技术突破的瓶颈?
  • GoLand 项目从 0 到 1:第八天 ——GORM 命名策略陷阱与 Go 项目启动慢问题攻坚
  • 通过机器学习框架实现Android手写识别输入功能
  • Spring Boot 3中JWT密钥安全存储方案
  • Python训练营打卡Day32-神经网络的训练