CodeBlanks Logo Icon CodeBlanks

textTheme

TextTheme ile başlık ve gövde stillerini öğrenirsin.

TextTheme nedir?

TextTheme, uygulamadaki metin stillerini tek bir yerden tanımlamanı sağlar. bodyLarge büyük gövde metni, headlineLarge büyük başlık gibi alanlar içerir. ThemeData'nın textTheme parametresine bir TextTheme verirsen, tüm Text widget'ları varsayılan olarak bu stilleri kullanır.

ThemeData(
  textTheme: const TextTheme(
    bodyLarge: TextStyle(fontSize: 16),
  ),
)

Bu yaklaşım, metin tutarlılığını kolayca sağlar.

bodyLarge ve headlineLarge

TextTheme içinde her metin rolü için bir alan vardır. bodyLarge büyük gövde metni için, headlineLarge ise büyük başlıklar içindir. Her alan bir TextStyle alır; burada yazı boyutu, kalınlık ve renk ayarlanır.

const TextTheme(
  bodyLarge: TextStyle(fontSize: 16),
  headlineLarge: TextStyle(fontSize: 32, fontWeight: FontWeight.bold),
)

Bu stilleri Theme.of(context).textTheme üzerinden widget'lara uygularsın.

Uygulama TextTheme ile tema

Uygulama adında bir StatelessWidget tanımla. build metodu bir MaterialApp döndürsün. theme parametresine bir ThemeData ver; bu ThemeData'nın textTheme alanı bir TextTheme olsun ve içinde bodyLarge: TextStyle(fontSize: 16) bulunsun. 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 içinde textTheme kullan

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(
        textTheme: const TextTheme(
          bodyLarge: TextStyle(fontSize: 16),
        ),
      ),
      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 TextTheme hangi türden verileri içerir?

  • Metin stilleri Doğru cevap
  • Buton stilleri
  • Navigasyon yolları
  • Veritabanı tabloları

Açıklama: TextTheme TextStyle nesnelerini içerir; bodyLarge, headlineLarge gibi alanlar metin stillerini tutar. Navigasyon, buton stilleri ve veritabanı TextTheme ile ilgili değildir.

2 TextTheme alanı

Soru
const TextTheme(
  ____: TextStyle(fontSize: 16),
),
Cevap
const TextTheme(
  bodyLarge: TextStyle(fontSize: 16),
),

Açıklama: Material 3 TextTheme'inde büyük gövde stili bodyLarge alanıyla belirtilir. bodyText1 eski Material 2 adıdır, textLarge ve bodyStyle TextTheme alanları değildir.

3 TextTheme parçaları

Kavram Anlamı
TextTheme metin stilleri kümesi
bodyLarge büyük gövde stili
headlineLarge büyük başlık stili
TextStyle tek metin stili

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