Στις περισσότερες περιπτώσεις, όταν χρησιμοποιούμε εφαρμογές για κινητά, πρέπει να αντιγράψουμε το κείμενο στο πρόχειρο και να το επικολλήσουμε σε άλλη εφαρμογή. Για παράδειγμα, αντιγράψτε τη λέξη και επικολλήστε την στην αναζήτηση google για να μάθετε τη σημασία. Σε αυτό το άρθρο, θα μάθουμε για την αντιγραφή ή επικόλληση του κειμένου από το πρόχειρο στο φτερούγισμα.
Για να αποκτήσουμε αυτή τη λειτουργία μπορούμε να χρησιμοποιήσουμε ένα πακέτο που ονομάζεται Πρόχειρο το οποίο είναι διαθέσιμο στο pub.dev
Προσθήκη εξάρτησης:
Για να δουλέψουμε με το πρόχειρο πρέπει να προσθέσουμε το πακέτο pubspec.yaml αρχείο και εγκαταστήστε το εκτελώντας το παμπ παίρνω εντολή
dependencies:
clipboard: ^0.1.3
Εισαγωγή πακέτου:
Μπορούμε να το χρησιμοποιήσουμε στον κώδικα Dart μετά την εγκατάσταση του πακέτου.
import 'package:clipboard/clipboard.dart';
Αντιγραφή κειμένου στο πρόχειρο:
Στο FlutterClipboard κλάση, έχουμε μια στατική μέθοδο που ονομάζεται αντίγραφο(..) που παίρνει μια συμβολοσειρά ως παράμετρο για την αντιγραφή κειμένου στο πρόχειρο.
FlutterClipboard.copy('Welcome to Flutterant.com').then(( value ) => print('copied'));
Περάστε το κείμενο από το πρόχειρο:
Στο FlutterClipboard κλάση, έχουμε μια άλλη στατική μέθοδο που ονομάζεται Επικόλληση(..) για την ανάκτηση δεδομένων από το πρόχειρο.
FlutterClipboard.paste().then((value) {
print("Copied Text: $value");
});
controlC() και controlV() είναι διαθέσιμες δύο ακόμη μέθοδοι στην κλάση FlutterClipboard
controlC (κείμενο συμβολοσειράς):
Παίρνει ένα κείμενο συμβολοσειράς και το αποθηκεύει επίσης στο Πρόχειρο, αλλά επιστρέφει μια δυαδική τιμή. Εάν το αντιγραμμένο κείμενο δεν είναι κενό, επιστρέφει true. διαφορετικά, επιστρέφει ψευδής.
controlV():
Τα δεδομένα ανακτώνται από το πρόχειρο χρησιμοποιώντας controlV() μέθοδος. Αυτή η μέθοδος ίδια με Επικόλληση()αλλά επιστρέφει τα δυναμικά δεδομένα.
Τώρα λοιπόν καταλαβαίνουμε πώς να χρησιμοποιούμε μεθόδους στην κλάση FlutterClipboard, το μόνο που έχουμε να κάνουμε είναι να δοκιμάσουμε τις μεθόδους που δίνονται παραπάνω και να δούμε πώς λειτουργούν. Δημιουργήστε το νέο έργο Flutter και αντικαταστήστε τον παρακάτω πλήρη κωδικό με κωδικό boilerplate και, στη συνέχεια, εκτελέστε την εφαρμογή.
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:clipboard/clipboard.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.orange,
),
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
TextEditingController field = TextEditingController();
String pasteValue = '';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text(
"Clipboard",
),
centerTitle: true,
),
body: Padding(
padding: const EdgeInsets.all(20.0),
child: SingleChildScrollView(
child: Column(
children: <Widget>[
const SizedBox(
height: 100,
),
TextFormField(
controller: field,
decoration: const InputDecoration(hintText: 'Enter text'),
),
const SizedBox(
height: 20,
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
GestureDetector(
child:
const Icon(Icons.copy, color: Colors.orange, size: 32),
onTap: () {
if (field.text.trim() == "") {
print('enter text');
} else {
_copyText(field.text);
}
},
),
GestureDetector(
child: const Icon(Icons.content_paste,
color: Colors.orange, size: 32),
onTap: () {
_pastText();
},
),
],
),
const SizedBox(
height: 22,
),
const Divider(),
Text(
'Clipboard Text: $pasteValue',
style: const TextStyle(
fontSize: 18,
color: Colors.black54,
fontStyle: FontStyle.italic),
)
],
),
),
),
);
}
void _copyText(String text) {
FlutterClipboard.copy(field.text).then((value) {
_showSnackBar();
});
}
void _pastText() {
FlutterClipboard.paste().then((value) {
setState(() {
field.text = value;
pasteValue = value;
});
});
}
void _showSnackBar() {
const snack =
SnackBar(content: Text("Text copied"), duration: Duration(seconds: 2));
ScaffoldMessenger.of(context).showSnackBar(snack);
}
}
Παραγωγή:
Για περισσότερες αναφορές κάντε κλικ εδώ
Ευχαριστώ για την ανάγνωση .. 🙂