Flutter中如何使用SelectableText组件
在Flutter中如何使用SelectableText组件实现文本可选择功能?我尝试添加SelectableText到项目中,但发现长按文本时没有出现选择菜单,也无法选中文字。请问需要额外配置什么参数吗?如何调整文本选择的样式,比如选中背景色和光标颜色?另外这个组件在iOS和Android上的表现是否一致?求一个完整的示例代码。
2 回复
在Flutter中使用SelectableText组件,只需导入package:flutter/material.dart,然后直接调用即可。例如:
SelectableText(
'可选择的文本',
style: TextStyle(fontSize: 16),
)
支持长按选择文本,并可自定义样式和交互行为。
更多关于Flutter中如何使用SelectableText组件的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中,SelectableText 组件用于显示可选择、可复制的文本,适用于需要用户复制文本内容的场景。以下是基本用法和关键属性说明:
基本用法
import 'package:flutter/material.dart';
class SelectableTextExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: SelectableText(
'这是一段可选择、可复制的文本',
style: TextStyle(fontSize: 18),
),
),
);
}
}
主要属性
- textAlign:文本对齐方式(如
TextAlign.center) - style:文本样式(颜色、字体等)
- toolbarOptions:控制工具栏选项
toolbarOptions: ToolbarOptions( copy: true, // 启用复制 cut: false, // 禁用剪切 selectAll: true, // 启用全选 ), - onTap:点击文本时的回调函数
- scrollPhysics:滚动物理效果(如
ClampingScrollPhysics())
完整示例
SelectableText(
'长按这段文本可显示复制选项,支持用户选择并复制内容。',
style: TextStyle(fontSize: 16, color: Colors.blue),
textAlign: TextAlign.center,
toolbarOptions: ToolbarOptions(copy: true, selectAll: true),
onTap: () => print('文本被点击'),
)
注意事项
- 默认支持长按弹出系统文本选择工具栏
- 在iOS/Android上工具栏行为可能略有差异
- 可通过
focusNode属性实现更复杂的焦点控制
通过 SelectableText 可以轻松实现文本选择功能,比普通 Text 组件更适用于需要交互的场景。

