RepaintBoundary
- Flutter kursu
- Uzman seviye
- Ders 8/39
- 4 dk
RepaintBoundary ile yeniden çizim alanını kısıtlamayı öğrenirsin.
RepaintBoundary
RepaintBoundary, alt widget'larının çizimini ayrı bir katmana alır; üst ağaç değişse bile bu sınır içindeki widget'lar yeniden çizilmez. Her frame'de tüm paint işini tekrarlamak yerine yalnızca değişen isolate alan çizilir.
RepaintBoundary(
child: MyExpensiveWidget(),
)paint ve isolate
Flutter, her frame'de paint ağacını yeniden çizer. RepaintBoundary, alt ağacı ayrı bir katmanda isolate ederek, üst ağaç değişse bile alt ağacın yeniden çizilmemesini sağlar. Animasyonlu bir bölümü sabit bir listeden ayırmak için idealdir.
Uygulama RepaintBoundary widget'ı oluştur
main içinde bir RepaintBoundary widget'ı oluştur: child olarak Container(width: 50) ver. Widget'ın runtimeType'ını yazdır.
Başlangıç kodu
import 'package:flutter/material.dart';
void main() {
// RepaintBoundary oluştur, çocuğu 50 genişliğinde bir Container
// runtimeType yazdır
}Örnek çözüm
import 'package:flutter/material.dart';
void main() {
final widget = RepaintBoundary(
child: Container(width: 50),
);
print(widget.runtimeType);
}Beklenen çıktı
RepaintBoundary
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 RepaintBoundary ne işe yarar?
- Belleği boşaltır
- Alt widget'ların yeniden çizimini izole eder Doğru cevap
- Widget boyutu hesaplar
- State yönetir
Açıklama: RepaintBoundary, alt ağacı ayrı bir çizim katmanına alır; üst ağaç değişse bile içerik yeniden çizilmez, gereksiz paint işinden kaçınılır.
2 RepaintBoundary kullan
____(
child: MyExpensiveWidget(),
)
RepaintBoundary(
child: MyExpensiveWidget(),
)
Açıklama: RepaintBoundary, çizim sınırı oluşturur; ClipRect kırpma, Opacity saydamlık, SizedBox boyut için kullanılır.
3 RepaintBoundary eşleşmeleri
| Kavram | Anlamı |
|---|---|
RepaintBoundary |
Çizim sınırı |
paint |
Çizim işlemi |
isolate |
Ayrı katman |
child |
Sınırın içeriği |