You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何实现ListTile长按复制文本功能?

实现长按ListTile复制文本功能

要实现长按ListTile复制其中的电话号码,只需给ListTile添加onLongPress回调,结合Flutter的Clipboard类完成复制操作,步骤如下:

  1. 导入剪贴板相关依赖包
import 'package:flutter/services.dart';
  1. 修改ListTile代码,添加长按复制逻辑
Card(
  margin: EdgeInsets.symmetric(horizontal: 25.0, vertical: 10.0),
  child: ListTile(
    leading: Icon(
      Icons.call,
      color: Colors.teal,
      size: 30.0,
    ),
    title: Text(
      '+11 11111 11111',
      style: TextStyle(
        color: Colors.black,
        fontFamily: 'EncodeSansExpanded',
        fontSize: 15.0,
      ),
    ),
    // 长按触发复制操作
    onLongPress: () async {
      // 定义要复制的电话号码,动态数据可替换为对应变量
      final phoneNumber = '+11 11111 11111';
      // 将文本写入系统剪贴板
      await Clipboard.setData(ClipboardData(text: phoneNumber));
      // 显示复制成功提示(系统自带SnackBar,无需额外依赖)
      ScaffoldMessenger.of(context).showSnackBar(
        const SnackBar(content: Text('电话号码已复制到剪贴板')),
      );
    },
  ),
)

补充说明

  • 如果电话号码是动态获取的(比如接口返回数据),直接将phoneNumber替换为对应变量即可
  • 若偏好Toast样式提示,可引入第三方包(如fluttertoast),但使用SnackBar更轻量且无需额外依赖

内容的提问来源于stack exchange,提问作者Alpesh Jasani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 11:15:03