Menu
CoddyTech

סמל טעינה מסתובב

חלק מהיחידה נתונים ורשת במסלול ה-Flutter של Coddy. שיעור 5 מתוך 27.

שתי שניות הן זמן רב לבהות במסך שאינו משתנה. עיגול מסתובב מראה לאדם שהאפליקציה פועלת. ב-Flutter הוא נקרא CircularProgressIndicator.

const CircularProgressIndicator()

הוא לא צריך שום דבר כדי לפעול: מציגים אותו על המסך והוא מסתובב. התפקיד הוא להציג אותו רק בזמן שהנתונים בדרך. bool במצב שלך עושה זאת:

bool loading = false;

// לפני ה-await: loading = true
// אחרי ה-await: loading = false

loading ? const CircularProgressIndicator() : Text(message)

הגדר את loading ל-true בתוך setState לפני await, והחזר אותו ל-false בתוך ה-setState שמציג את התשובה.

challenge icon

אתגר

קל

החליפו את הטקסט Loading... בסמן טעינה:

  • הוסיפו את bool loading = false; למצב
  • הגדירו אותו ל־true לפני fetch והחזירו אותו ל־false כשההודעה מגיעה
  • כל עוד loading הוא true, הציגו CircularProgressIndicator במקום ההודעה

נסו בעצמכם

import 'package:flutter/material.dart';

import 'api.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      debugShowCheckedModeBanner: false,
      home: MessageScreen(),
    );
  }
}

class MessageScreen extends StatefulWidget {
  const MessageScreen({super.key});

  @override
  State<MessageScreen> createState() => _MessageScreenState();
}

class _MessageScreenState extends State<MessageScreen> {
  String message = 'No message yet';

  Future<void> loadMessage() async {
    setState(() {
      message = 'Loading...';
    });
    final text = await fetch('/message');
    setState(() {
      message = text;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            Text(message, style: const TextStyle(fontSize: 24)),
            const SizedBox(height: 24),
            ElevatedButton(onPressed: loadMessage, child: const Text('Load message')),
          ],
        ),
      ),
    );
  }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה נתונים ורשת

תרגלו בעצמכם: קומפיילר Flutter אונליין