Theme.of
- Flutter kursu
- Orta seviye
- Ders 89/99
- 4 dk
Theme.of(context) ile tema değerlerine erişmeyi öğrenirsin.
Theme.of nedir?
Theme.of(context), o anki bağlamdaki ThemeData'ya erişmeni sağlar. Böylece widget içinde tema renk ve stillerini doğrudan kullanabilirsin. Theme.of(context).colorScheme.primary ile ana renge, Theme.of(context).textTheme.bodyLarge ile de gövde stiline ulaşırsın.
Text(
'Merhaba',
style: TextStyle(
color: Theme.of(context).colorScheme.primary,
),
)Bu yöntem, temayı elle widget'a geçirmeden erişmenin temel yoludur.
colorScheme ve textTheme erişimi
Theme.of(context) ile hem renklere hem metin stillerine erişirsin. Theme.of(context).colorScheme.primary ana rengi, Theme.of(context).textTheme.bodyLarge ise büyük gövde stilini verir. Bu değerleri widget'ların style veya color parametrelerine doğrudan bağlayabilirsin.
final tema = Theme.of(context);
print(tema.colorScheme.primary);
print(tema.textTheme.bodyLarge);Bu erişim, temayı değiştirdiğinde tüm widget'ların otomatik güncellenmesini sağlar.
Uygulama Theme.of ile renkli yazı
RenkliYazi adında bir StatelessWidget tanımla. build metodu bir Text döndürsün; Text'in style parametresi bir TextStyle alsın ve bu TextStyle'ın color alanı Theme.of(context).colorScheme.primary olsun. main içinde 'hazir' yazdır.
Başlangıç kodu
import 'package:flutter/material.dart';
// RenkliYazi StatelessWidget tanımla
// build bir Text döndürsün
// Text'in rengi temadan gelsin
void main() {
// 'hazir' yazdır
}Örnek çözüm
import 'package:flutter/material.dart';
class RenkliYazi extends StatelessWidget {
const RenkliYazi({super.key});
@override
Widget build(BuildContext context) {
return Text(
'Merhaba',
style: TextStyle(
color: Theme.of(context).colorScheme.primary,
),
);
}
}
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 Theme.of(context) ne döndürür?
- Bir Widget
- Bir Future
- Bir String
- ThemeData nesnesi Doğru cevap
Açıklama: Theme.of(context) o bağlamdaki ThemeData nesnesini döndürür; böylece colorScheme ve textTheme gibi alanlara erişirsin. Widget, Future ve String ThemeData değildir.
2 Theme.of çağrısı
color: ____(context).colorScheme.primary,
color: Theme.of(context).colorScheme.primary,
Açıklama: Theme.of(context) ile ThemeData'ya erişilir. context.theme, ThemeData.of ve App.theme geçerli metodlar değildir; Flutter'da doğru kullanım Theme.of'dur.
3 Theme.of parçaları
| Kavram | Anlamı |
|---|---|
Theme.of(context) |
ThemeData'ya erişim |
colorScheme |
renk paleti |
primary |
ana renk |
context |
build bağlamı |