CodeBlanks Logo Icon CodeBlanks

CustomPaint nedir?

CustomPaint widget'ı ile özel çizim yapmayı öğrenirsin.

CustomPaint nedir?

CustomPaint, Flutter'da standart widget'larla yapılamayan serbest çizimler için kullanılan widget'tır. İçine bir painter ve opsiyonel bir size alır; çizim işini painter nesnesine bırakır. Bir child verirsen çizim onun arkasında görünür.

CustomPaint(
  size: Size(100, 100),
  painter: MyPainter(),
)

Çizilen alan, size ile belirtilen boyuta yayılır.

child ve size ilişkisi

CustomPaint'a child verirsen çizim onun arkasında kalır ve size yoksayılır; child'ın boyutu kullanılır. Child yoksa size çizim boyutunu belirler.

CustomPaint(
  painter: MyPainter(),
  child: Container(width: 80, height: 80),
)

Uygulama CustomPaint widget'ı oluştur

MyPainter sınıfı hazır verilir. main içinde 100x100 boyutlu, MyPainter() kullanan bir CustomPaint oluştur ve print ile tipini yazdır.

Başlangıç kodu

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

class MyPainter extends CustomPainter {
  @override
  void paint(Canvas canvas, Size size) {}

  @override
  bool shouldRepaint(covariant CustomPainter oldDelegate) => false;
}

void main() {
  // 100x100 CustomPaint oluştur ve tipini yazdır
}

Örnek çözüm

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

class MyPainter extends CustomPainter {
  @override
  void paint(Canvas canvas, Size size) {}

  @override
  bool shouldRepaint(covariant CustomPainter oldDelegate) => false;
}

void main() {
  final widget = CustomPaint(
    size: Size(100, 100),
    painter: MyPainter(),
  );
  print(widget.runtimeType);
}

Beklenen çıktı

CustomPaint

Soru ve cevaplar

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

1 CustomPaint widget'ında gerçek çizimi kim yapar?

  • size parametresi
  • BuildContext
  • painter parametresindeki nesne Doğru cevap
  • child parametresindeki widget

Açıklama: Çizimi painter parametresine verilen CustomPainter nesnesi yapar; child yalnızca üstte durur, size ise alanı belirler.

2 painter parametresini ekle

Soru
CustomPaint(
  size: Size(50, 50),
  ____: MyPainter(),
)
Cevap
CustomPaint(
  size: Size(50, 50),
  painter: MyPainter(),
)

Açıklama: Çizimi yapacak nesne painter parametresine verilir; child üstteki widget, size ise alandır.

3 CustomPaint parçaları

Kavram Anlamı
CustomPaint Serbest çizim widget'ı
painter Çizimi yapan nesne
size Çizim alanı boyutu
child Çizimin üstündeki widget

İleri seviye bölümündeki tüm dersler