التفاعل مع الكتابة
جزء من قسم إضافة التفاعلية في رحلة Flutter على Coddy. الدرس 23 من 34.
يمكن للحقل أن يخبرك في كل مرة يتغير فيها نصه. مرّر إليه onChanged:، وهي دالة تتلقى النص كاملًا كما هو في تلك اللحظة:
TextField(
onChanged: (String value) {
print(value);
},
)اكتب Ada، وسيطبع هذا ثلاث مرات: A، وAd، وAda. إن (String value) وسيط، مثل الوسائط الواردة في درس «الدوال ذات الوسائط»: يستدعي الحقل دالتك ويمرّر إليها نصه.
لعرض النص في مكان آخر على الشاشة، احتفظ به في الحالة وغيّره باستخدام setState، بالطريقة نفسها التي يغيّر بها زرٌّ عددًا:
onChanged: (String value) {
setState(() {
_name = value;
});
},التحدي
سهلاجعل التحية تتبع محتوى الحقل: أثناء كتابة اسم، تتحول Hello, stranger! إلى Hello, Ada!. خزّن النص في _name من خلال onChanged.
جرّب بنفسك
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: const HomePage(),
);
}
}
class HomePage extends StatefulWidget {
const HomePage({super.key});
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
String _name = 'stranger';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Greeter')),
body: Padding(
padding: const EdgeInsets.all(24),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextField(
decoration: const InputDecoration(
labelText: 'Your name',
border: OutlineInputBorder(),
),
),
const SizedBox(height: 24),
Text('Hello, $_name!', style: const TextStyle(fontSize: 24)),
],
),
),
);
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس إضافة التفاعلية
1الأزرار
زرّك الأولالطباعة في وحدة التحكمالأزرار النصية والمحددة بإطارأزرار الأيقوناتزر الإجراء العائم7مفاتيح التبديل وشرائح التمرير
التشغيل والإيقاف باستخدام مفتاححدّد مربع الاختياراختر قيمة باستخدام شريط التمريرتدرّب بنفسك: مترجم Flutter عبر الإنترنت