bool والعامل ? :
جزء من قسم إضافة التفاعلية في رحلة Flutter على Coddy. الدرس 17 من 34.
بعض القيم لا تكون إلا نعم أو لا: هل الضوء مضاء، وهل تم تحديد المربع. نوع Dart لهذه القيم هو bool، وقيمتاه هما true وfalse:
bool _isOn = false;تبدّل ! التي تسبق قيمة من النوع bool حالتها، لذا فإن _isOn = !_isOn; تحوّل true إلى false وfalse إلى true. وتقوم طريقة المصباح _flip بذلك بالفعل.
لعرض شيء أو آخر حسب قيمة من النوع bool، استخدم التعبير الشرطي ? :. يُقرأ كسؤال: هل هو مضاء؟ إذن هذا، وإلا فذاك.
Text(_isOn ? 'On' : 'Off')
Icon(Icons.star, color: _isOn ? Colors.red : Colors.black)قبل ? تأتي قيمة true أو false. وبعدها تأتي القيمة عندما تكون true، ثم : والقيمة عندما تكون false. يعمل هذا التعبير في أي موضع تُستخدم فيه قيمة: نص أو لون أو حجم.
التحدي
سهليغيّر زر Switch قيمة _isOn، لكن المصباح يبدو دائمًا مطفأً. استخدم ? : بحيث عندما تكون قيمة _isOn true، يعرض النص The light is on ويكون لون المصباح Colors.amber، وإلا يعرض The light is off ويكون لون المصباح Colors.grey.
جرّب بنفسك
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> {
bool _isOn = false;
void _flip() {
setState(() {
_isOn = !_isOn;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Lamp')),
body: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.lightbulb, size: 96, color: Colors.grey),
const Text('The light is off'),
const SizedBox(height: 16),
ElevatedButton(onPressed: _flip, child: const Text('Switch')),
],
),
),
);
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس إضافة التفاعلية
1الأزرار
زرّك الأولالطباعة في وحدة التحكمالأزرار النصية والمحددة بإطارأزرار الأيقوناتزر الإجراء العائم7مفاتيح التبديل وشرائح التمرير
التشغيل والإيقاف باستخدام مفتاححدّد مربع الاختياراختر قيمة باستخدام شريط التمرير5اتخاذ القرارات
bool والعامل ? :اتخاذ القرارات باستخدام if وelseAnd وOr وNot في Dartإظهار وإخفاء عنصر واجهةتعطيل زر بصريًاتدرّب بنفسك: مترجم Flutter عبر الإنترنت