Menu
CoddyTech
flag Ar iconالعربيةdown icon

التفاعل مع الكتابة

جزء من قسم إضافة التفاعلية في رحلة Flutter على Coddy. الدرس 23 من 34.

يمكن للحقل أن يخبرك في كل مرة يتغير فيها نصه. مرّر إليه onChanged:، وهي دالة تتلقى النص كاملًا كما هو في تلك اللحظة:

TextField(
  onChanged: (String value) {
    print(value);
  },
)

اكتب Ada، وسيطبع هذا ثلاث مرات: A، وAd، وAda. إن (String value) وسيط، مثل الوسائط الواردة في درس «الدوال ذات الوسائط»: يستدعي الحقل دالتك ويمرّر إليها نصه.

لعرض النص في مكان آخر على الشاشة، احتفظ به في الحالة وغيّره باستخدام setState، بالطريقة نفسها التي يغيّر بها زرٌّ عددًا:

onChanged: (String value) {
  setState(() {
    _name = value;
  });
},
challenge icon

التحدي

سهل

اجعل التحية تتبع محتوى الحقل: أثناء كتابة اسم، تتحول 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)),
          ],
        ),
      ),
    );
  }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس إضافة التفاعلية

تدرّب بنفسك: مترجم Flutter عبر الإنترنت