当前位置: 首页 > 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.dtcms.com/a/331893.html

相关文章:

  • 水印消失术!JavaAI深度学习去水印技术深度剖析
  • 在启智平台使用A100对文心开源大模型Ernie4.5 0.3B微调(失败)
  • vector 认识及使用
  • Docker 入门与实战:从环境搭建到项目部署
  • Java构造器与工厂模式(静态工程方法)详解
  • 20道JavaScript相关前端面试题及答案
  • 2025.8.24复习总结
  • WAF 与 SIEM 联动:攻击事件的实时告警与溯源分析流程
  • 3D-R1、Scene-R1、SpaceR论文解读
  • C#:TryGetValue
  • C语言零基础第16讲:内存函数
  • 技术速递|通过 GitHub Models 在 Actions 中实现项目自动化
  • linux 下第三方库编译及交叉编译——MDBTOOLS--arm-64
  • 使用Docker安装Gitea自托管的Git服务
  • 零基础从头教学Linux(Day 12)
  • python+vue扫盲
  • 智能制造综合实训平台数据采集物联网解决方案
  • 备忘录模式及优化
  • 多窗口多烧蚀(Multi-window, Multi-Burn-Rate, MWMBR)
  • 苹果AI战略布局:重新定义智能家居与AI助手的未来
  • TDengine IDMP 基本功能(7. 智能问数)
  • 乘积小于K的子数组
  • flstudio.exe安装教程|FL Studio怎么下载安装?超简单中文指南
  • 状态管理、网络句柄、功能组和功能组状态的逻辑关系
  • 微服务架构概述
  • 《算法导论》第 24 章 - 单源最短路径
  • stm32项目(28)——基于stm32的环境监测并上传至onenet云平台
  • 手机实时提取SIM卡打电话的信令声音-整体解决方案规划
  • Linux新手上路 | 在Ubuntu上Pluma文本编辑器的安装与基本使用
  • 大模型部署基础设施搭建 - Open WebUI