Menu
CoddyTech

Bir Anahtarla Açıp Kapatma

Coddy'nin Flutter Journey'sinin Etkileşimli Uygulamalar bölümünün bir parçası. Ders 27 / 34.

Switch, telefon ayarlarından bildiğin açma kapama düğmesidir. Bir bool değeri gösterir ve biri düğmeyi değiştirdiğinde sana bildirir:

Switch(
  value: _wifi,
  onChanged: (bool value) {
    setState(() {
      _wifi = value;
    });
  },
)

value:, düğmenin nasıl çizileceğini belirler: true için açık, false için kapalı. Düğmeye dokunulduğunda onChanged yeni değeri alır.

Anahtar kendi kendine hareket etmez. Dokunma yalnızca onChanged'i çağırır; yeni değeri setState ile kaydedersin, ekran yeniden oluşturulur ve anahtar yeni konumunda çizilir. Bunu unutursan anahtar, her dokunuşunda eski konumuna geri döner.

challenge icon

Görev

Kolay
  • Anahtarın çalışmasını sağla: yeni değeri setState ile _dark içine kaydet.
  • Koyu mod açıkken Scaffold için Colors.black, kapalıyken Colors.white değerini backgroundColor olarak ayarla. Etiketin rengi zaten değişiyor.

Kendin dene

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 _dark = false;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      appBar: AppBar(title: const Text('Settings')),
      body: Center(
        child: Row(
          mainAxisSize: MainAxisSize.min,
          children: [
            Text(
              'Dark mode',
              style: TextStyle(fontSize: 20, color: _dark ? Colors.white : Colors.black),
            ),
            const SizedBox(width: 12),
            Switch(
              value: _dark,
              onChanged: (bool value) {},
            ),
          ],
        ),
      ),
    );
  }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Etkileşimli Uygulamalar bölümündeki tüm dersler

Kendi başına pratik yap: Online Flutter derleyicisi