RenderBox
- Flutter kursu
- Uzman seviye
- Ders 12/39
- 4 dk
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
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
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
final minSize = constraints.____;
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 |