Clipboard
可操作系统的剪贴板,与之配合使用的有ClipboardData
,表示剪贴板的数据。
一、Clipboard
Clipboard
有两个重要的静态方法:setData
和getData
。其中setData
是用来向系统剪贴板中放入数据;getData
是从系统剪贴板中取出数据。Clipboard
中的数据均以ClipboardData
的形式存放,ClipboardData
中的text
属性就是被剪贴的内容。
二、使用示例
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
class ClipboardRoute extends StatefulWidget{
@override
_ClipboardRouteState createState() => _ClipboardRouteState();
}
class _ClipboardRouteState extends State<ClipboardRoute> {
String _str = '被复制的文字';
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
appBar: AppBar(
title: Text('Clipboard'),
),
body: Container(
width: double.infinity,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Text(_str),
RaisedButton(
child: Text('复制内容'),
onPressed: () {
Clipboard.setData(ClipboardData(text: _str));
},
),
Builder(
builder: (context) {
return RaisedButton(
child: Text('获取复制的内容'),
onPressed: () async {
ClipboardData data = await Clipboard.getData(Clipboard.kTextPlain);
if (data != null) {
Scaffold.of(context).removeCurrentSnackBar();
Scaffold.of(context).showSnackBar(
SnackBar(content: Text(data.text),)
);
}
},
);
},
)
],
),
),
);
}
}