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

Flutter:如何修改选中文本时的光标颜色并移除光标下方气泡

Flutter选中文本时光标颜色修改与工具栏移除方案

1. 修改选中文本时光标颜色

选中文本时的光标颜色与常规光标颜色由同一属性控制,可通过以下两种方式设置:

  • 单个输入框自定义
    直接在TextField或TextFormField中指定cursorColor,该颜色会同时作用于常规状态和选中文本状态下的光标:
TextField(
  cursorColor: Colors.greenAccent,
  decoration: InputDecoration(hintText: "请输入内容"),
)
  • 全局统一配置
    通过ThemeData设置全局光标颜色,项目内所有输入框都会自动应用该颜色:
MaterialApp(
  theme: ThemeData(
    cursorColor: Colors.orange,
  ),
  home: Scaffold(
    body: Center(child: TextField()),
  ),
)

若使用Cupertino风格的CupertinoTextField,同样通过cursorColor属性设置即可。

2. 移除选中文本时的工具栏气泡

选中文本后出现的气泡是文本选择工具栏,可通过两种方式移除:

  • 单个输入框禁用
    使用toolbarOptions属性,将所有操作选项设为false,或直接使用预设的ToolbarOptions.none:
TextField(
  // 方式1:逐个禁用工具栏操作
  toolbarOptions: ToolbarOptions(
    copy: false,
    cut: false,
    paste: false,
    selectAll: false,
  ),
  // 方式2:直接使用预设的无操作配置
  // toolbarOptions: ToolbarOptions.none,
)
  • 全局禁用
    若需要所有输入框都隐藏该工具栏,可在ThemeData的textSelectionTheme中自定义工具栏构建器:
MaterialApp(
  theme: ThemeData(
    textSelectionTheme: TextSelectionThemeData(
      toolbarWidgetBuilder: (context, state) => null,
    ),
  ),
  home: Scaffold(body: TextField()),
)

提示:如果需要保留部分工具栏操作,只需在toolbarOptions中将对应选项设为true即可。

内容的提问来源于stack exchange,提问作者Elle Bishop

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 02:51:16