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
相关产品推荐
相关产品推荐

