bool und der ?: Operator
Teil des Abschnitts Apps interaktiv gestalten der Flutter-Journey von Coddy. Lektion 17 von 34.
Manche Werte können nur ja oder nein sein: Ist das Licht an, ist das Kästchen angekreuzt? In Dart heißt der Typ dafür bool, und seine beiden Werte sind true und false:
bool _isOn = false;Das ! vor einem bool kehrt seinen Wert um, also macht _isOn = !_isOn; aus true false und aus false true. Die Methode _flip der Lampe macht das bereits.
Um je nach bool einen Wert oder einen anderen anzuzeigen, verwende den bedingten Ausdruck ? :. Er liest sich wie eine Frage: Ist es an? Dann das hier, sonst das andere.
Text(_isOn ? 'On' : 'Off')
Icon(Icons.star, color: _isOn ? Colors.red : Colors.black)Vor dem ? steht etwas, das wahr oder falsch ist. Danach kommt der Wert für wahr, dann : und der Wert für falsch. Das funktioniert überall dort, wo ein Wert hingehört: bei einem Text, einer Farbe oder einer Größe.
Aufgabe
EinfachDie Schaltfläche Switch ändert _isOn, aber die Lampe sieht immer ausgeschaltet aus. Verwende ? :, sodass der Text bei true für _isOn The light is on lautet und die Glühbirne Colors.amber ist; andernfalls lautet der Text The light is off und die Glühbirne ist Colors.grey.
Probier es selbst
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')),
],
),
),
);
}
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Apps interaktiv gestalten
1Schaltflächen
Deine erste SchaltflächeIn der Konsole ausgebenText- und umrandete SchaltflächenSymbol-SchaltflächenDer Floating Action Button7Schalter und Schieberegler
Ein und aus mit einem SchalterEin Kästchen ankreuzenEinen Wert mit einem Schieberegler auswählen5Entscheidungen
bool und der ?: OperatorEntscheidungen mit if und elseAnd, Or und Not in DartEin Widget ein- und ausblendenEinen Button ausgrauenÜbe selbstständig: Online-Flutter-Compiler