CodeBlanks Logo Icon CodeBlanks

RepaintBoundary

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

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

void main() {
  // RepaintBoundary oluştur, çocuğu 50 genişliğinde bir Container
  // runtimeType yazdır
}

Örnek çözüm

main.dart
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

Soru
____(
  child: MyExpensiveWidget(),
)
Cevap
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

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