Flutter — добавить копию в буфер обмена без пакета
В этой статье мы увидим, как реализовать копирование в буфер обмена во Flutter. Мы можем сделать это, используя также package. Но в этой статье мы сделаем это без какого-либо пакета.
Как использовать:
Clipboard.setData(new ClipboardData(text: "Copied text here"));
У буфера обмена есть метод setData , который принимает параметр ClipboardData , который затем принимает текст для копирования .
Подход:
Интуиция — это просто создание текстового поля и кнопки для извлечения текста из текстового поля. а затем позвольте установить данные или текст в буфер обмена. Также мы можем показывать Snackbar при нажатии на кнопку копирования, которая уведомляет пользователя о событии. Пример видео приведен ниже, чтобы получить представление о том, что мы собираемся делать в этой статье.
Пошаговая реализация
Шаг 1. Создайте новый проект в Android Studio.
Чтобы настроить Flutter Development в Android Studio, обратитесь к разделу «Настройка Android Studio для разработки Flutter», а затем создайте новый проект в Android Studio, пожалуйста, обратитесь к разделу «Создание простого приложения во Flutter».
Шаг 2: Импорт пакета материалов
Добавление пакета материалов, который дает нам важные функции и вызывает метод runApp в основной функции, которая будет вызывать наше приложение.
import "package:flutter/material.dart"; void main() { runApp(RunMyApp()); }
Шаг 3: Создание виджета без сохранения состояния
Теперь нам нужно сделать виджет без состояния, потому что наше приложение не изменяет свое состояние, а затем возвращает виджет materialApp, который позволяет нам установить заголовок, тему и многое другое.
class RunMyApp extends StatelessWidget { const RunMyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp(); } }
Шаг 4: Создание виджета Scaffold
Дайте свойство home, и может быть виджет эшафота, который имеет свойство AppBar и body. AppBar позволяет нам указать заголовок AppBar, цвет, начальный и конечный значок. тело принимает класс HomePage.
home: Scaffold( appBar: AppBar( title: Text("Copy to clipboard"), ), body: HomePage( ); ),
Шаг 5: Создайте класс HomePage и создайте текстовое поле и кнопку для извлечения текста. И в свойстве onpressed установить текст в буфер обмена.
Окончательный код
Dart
import "package:flutter/material.dart" ; import "package:flutter/services.dart" ; void main() => runApp(RunMyApp()); class RunMyApp extends StatelessWidget { RunMyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false , theme: ThemeData(primarySwatch: Colors.green), home: Scaffold( appBar: AppBar( title: const Text( "Copy to Clipboard" ), ), body: HomePage(), ), ); } } class HomePage extends StatelessWidget { HomePage({super.key}); // controller to retrieve the text TextEditingController controller = TextEditingController(); @override Widget build(BuildContext context) { return Center( child: Column( children: [ TextField( controller: controller, ), SizedBox( height: 30, ), ElevatedButton( onPressed: () { Clipboard.setData( new ClipboardData(text: controller.text)) .then((_) { controller.clear(); ScaffoldMessenger.of(context).showSnackBar( SnackBar(content: Text( "Copied to your clipboard !" ))); }); }, child: const Text( "Copy" ), ), SizedBox( height: 50, ), ], ), ); } } |
Выход: