Flutter 中的 SelectableText 小部件:全面指南
时间: 2024-09-06 10:05:48 浏览: 82
flutter_selectable_text:Flutter的可选文本小部件
在Flutter中,`SelectableText`是一个用于创建可选文本的小部件,它允许用户通过长按并拖动选择一段文本。这个小部件非常适合需要交互式文本选择的应用场景,例如富文本编辑器、搜索框结果展示等。
`SelectableText`的工作原理是基于触摸手势事件,当用户开始触摸并移动手指时,它会高亮显示选中的文本区域。当你松开手指时,可以选择的文本将被复制到剪贴板,或者你可以关联一个`onSelectionChanged`回调函数,以便在用户选择文本时执行自定义操作。
以下是使用`SelectableText`的基本步骤:
1. 引入依赖:首先需要在`pubspec.yaml`文件中添加`flutter_markdown`依赖,因为`SelectableText`通常配合`Markdown`使用处理富文本。
```yaml
dependencies:
flutter:
sdk: flutter
flutter_markdown: ^4.0.0
```
2. 创建实例:在你的Widget构建方法中,使用`SelectableText`包裹Markdown字符串,并提供所需的`selectionController`和`onSelectionChanged`参数。
```dart
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
class MyWidget extends StatelessWidget {
final TextEditingController selectionController = TextEditingController();
@override
Widget build(BuildContext context) {
String markdownContent = '这是你的 Markdown 内容...';
return GestureDetector(
onLongPress: () {
// 开始选择
selectionController.selectAll();
},
child: SelectableText(
controller: selectionController,
text: markdownContent,
selection: TextSelection.collapsed(offset: markdownContent.length),
style: TextStyle(fontSize: 16),
onTap: () {
// 处理点击事件
},
onSelectionChanged: (TextSelection selection) {
// 当选择改变时,这里可以更新状态或执行其他操作
},
),
);
}
}
```
阅读全文