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),) ); } }, ); }, ) ], ), ), ); } }
Clipboard有两个重要的静态方法:setData和getData。其中setData是用来向系统剪贴板中放入数据;
getData是从系统剪贴板中取出数据。
Clipboard中的数据均以ClipboardData的形式存放,ClipboardData中的text属性就是被剪贴的内容