CodeBlanks Logo Icon CodeBlanks

ThemeData nedir?

ThemeData ile uygulama geneli tema tanımlamayı öğrenirsin.

ThemeData nedir?

ThemeData, bir Flutter uygulamasının genel görünümünü tanımlayan nesnedir. Renkler, metin stilleri ve widget varsayılanları burada toplanır. MaterialApp'ın theme parametresine bir ThemeData verirsen, tüm uygulamadaki widget'lar bu temayı kullanır.

MaterialApp(
  theme: ThemeData(primarySwatch: Colors.blue),
  home: Scaffold(body: Center(child: Text('Merhaba'))),
)

Bu sayede her ekranda ayrı ayrı renk ve stil belirtmek yerine tek bir yerden yönetirsin.

MaterialApp'e theme bağlama

ThemeData'yı uygulamaya bağlamak için MaterialApp'ın theme parametresini kullanırsın. Bu parametre bir ThemeData nesnesi alır. primarySwatch gibi temel alanları vererek tüm Material widget'larının görünümünü belirlersin.

MaterialApp(
  theme: ThemeData(
    primarySwatch: Colors.indigo,
  ),
  home: AnaEkran(),
)

Bu yapılandırma, AppBar, FloatingActionButton gibi widget'ların varsayılan rengini belirler.

Uygulama ThemeData ile MaterialApp

Uygulama adında bir StatelessWidget tanımla. build metodu bir MaterialApp döndürsün. theme parametresine ThemeData(primarySwatch: Colors.blue) ver ve home olarak Scaffold(body: Center(child: Text('Merhaba'))) kullan. main içinde 'hazir' yazdır.

Başlangıç kodu

main.dart
import 'package:flutter/material.dart';

// Uygulama StatelessWidget tanımla
// build MaterialApp döndürsün
// theme parametresi tema alsın

void main() {
  // 'hazir' yazdır
}

Örnek çözüm

main.dart
import 'package:flutter/material.dart';

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(primarySwatch: Colors.blue),
      home: const Scaffold(body: Center(child: Text('Merhaba'))),
    );
  }
}

void main() {
  print('hazir');
}

Beklenen çıktı

hazir

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 ThemeData'nın temel amacı nedir?

  • Ağ isteği atmak
  • Animasyon oynatmak
  • Veritabanı bağlantısı kurmak
  • Uygulama geneli görünümü tanımlamak Doğru cevap

Açıklama: ThemeData uygulamanın renk, metin ve widget varsayılanlarını tanımlar. Veritabanı, ağ isteği ve animasyon ThemeData'nın konusu değildir.

2 ThemeData tanımı

Soru
theme: ____(primarySwatch: Colors.blue),
Cevap
theme: ThemeData(primarySwatch: Colors.blue),

Açıklama: theme parametresi bir ThemeData nesnesi alır. Navigator yönlendirme içindir, Scaffold ekran iskeletidir, Material bir widget'tır; bunlar tema tanımı değildir.

3 ThemeData parçaları

Kavram Anlamı
ThemeData tema tanımı
colorScheme renk paleti
textTheme metin stilleri
primarySwatch ana renk tonu

Orta seviye bölümündeki tüm dersler