CodeBlanks Logo Icon CodeBlanks

RenderBox

RenderBox ile kutu modelinde layout yapmayı öğrenirsin.

RenderBox

RenderBox, sabit boyutlu kutu modeli kullanan render nesnesidir; RenderObject'ten türetilir. constraints ebeveynden gelen boyut sınırlarını taşır, size ise layout sonrası kendi boyutunu tutar. Kutular her zaman kare/dikdörtgen alanlar için kullanılır.

class MyBox extends RenderBox {
  @override
  void performLayout() {
    size = constraints.biggest;
  }
}

BoxConstraints

BoxConstraints, ebeveynden gelen min/max width ve height sınırlarıdır. constraints.biggest izin verilen en büyük boyutu, constraints.smallest en küçüğü verir. size, bu sınırlar içinde bir Size olarak atanır.

Uygulama RenderBox tanımla

MyBox adında bir RenderBox tanımla. performLayout'ta size = constraints.smallest ata. main'de MyBox örneği al ve runtimeType yazdır.

Başlangıç kodu

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

// MyBox sınıfını RenderBox olarak tanımla
// performLayout'ta size'ı constraints smallest ata

void main() {
  // MyBox örneği al ve runtimeType yazdır
}

Örnek çözüm

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

class MyBox extends RenderBox {
  @override
  void performLayout() {
    size = constraints.smallest;
  }
}

void main() {
  final box = MyBox();
  print(box.runtimeType);
}

Beklenen çıktı

MyBox

Soru ve cevaplar

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

1 RenderBox'ta size ne zaman belirlenir?

  • Hiçbir zaman
  • Derleme zamanında
  • paint sırasında
  • performLayout çağrıldıktan sonra Doğru cevap

Açıklama: size, performLayout metodunda atanır; ebeveynden gelen constraints kullanılarak hesaplanır ve layout bitince geçerli olur.

2 constraints.smallest kullan

Soru
final minSize = constraints.____;
Cevap
final minSize = constraints.smallest;

Açıklama: constraints.smallest izin verilen en küçük boyutu döner; biggest en büyüğü verir, width ve height ise BoxConstraints üzerinde doğrudan özellik değildir.

3 RenderBox eşleşmeleri

Kavram Anlamı
RenderBox Kutu render nesnesi
constraints Ebeveyn sınırları
size Layout sonrası boyut
BoxConstraints Min/max sınırlar

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