render Class widget.
- extends by RenderStack
=> attach, detach, describeApproximatePaintClip, paint, computeDryLayout, performLayout, computeMinIntrinsicWidth, computeMaxIntrinsicWidth, computeMinIntrinsicHeight, computeMaxIntrinsicHeight
-
Override function: a. attach sebuah method yang digunakan untuk menambahkan atau melekatkan sebuah AbstractNode ke dalam widget tree yang ada. b. detach memutuskan semua hubungan yang dimilikinya dengan widget dan objek lain yang terkait di dalam pohon widget, dan melepaskan semua sumber daya yang terkait dengan widget tersebut. c. describeApproximatePaintClip ntuk mengembalikan objek Rect yang merepresentasikan batas klip untuk PaintingContext untuk mengoptimalkan kinerja aplikasi dengan mempercepat proses rendering antarmuka pengguna. d. paint digunakan untuk melakukan rendering tampilan (painting) dari objek RenderObject. Dengan munggunakan class
Paint()
sebagai "Kuas"-nya danPath()
sebagai "Tangan"-nya dan dieksekusi didalam classCanvas()
(melauiPaintingContext
). Lalu untuk untuk meneruskan proses rendering ke anak-anaknya dengan cara memanggilpaintChild
. ```dart import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart';class CustomRenderObject extends RenderBox { @override void paint(PaintingContext context, Offset offset) { // Membuat objek Paint final paint = Paint() ..color = Colors.blue ..strokeWidth = 5.0 ..style = PaintingStyle.stroke; // Membuat objek Path untuk menggambar garis diagonal final path = Path() ..moveTo(0, 0) ..lineTo(size.width, size.height); // Menggambar garis diagonal ke Canvas context.canvas.drawPath(path, paint); // Memanggil paintChild pada anak-anak RenderObject if (child != null) { context.paintChild(child!, offset); } } } ```
e. computeDryLayout digunakan untuk menghitung ukuran yang sesuai untuk RenderObject saat tidak ada konstrain yang diterapkan. Dalam implementasi sebenarnya, computeDryLayout seringkali mempertimbangkan faktor-faktor seperti ukuran minimum atau maksimum, serta preferensi ukuran dan properti lainnya untuk menghasilkan ukuran yang ideal untuk RenderObject saat konstrain tidak diterapkan. Namun, ketika konstrain berubah, RenderObject tetap harus memperbarui ukuran dan posisi elemen yang direpresentasikan dengan memanggil fungsi layout. f. performLayout ketika sebuah RenderObject menerima perubahan konstrain (seperti saat pertama kali masuk ke WidgetTree atau ukuran konstrant dari parent berubah), ia akan memanggil fungsi performLayout pada child-nya untuk menentukan posisi dan ukuran yang sesuai. Fungsi performLayout kemudian akan menghitung dan memperbarui/menyelesaikan ukuran dan posisi dari elemen yang direpresentasikan.
g. computeMinIntrinsicWidth digunakan untuk menghitung lebar maksimum yang dibutuhkan oleh sebuah RenderObject agar dapat menampilkan semua child-nya dengan benar, tanpa terjadi overflow. Secara umum, fungsi ini akan menghitung lebar minimum yang dibutuhkan oleh semua child-nya, dan menambahkannya dengan padding, border, dan nilai lainnya yang relevan untuk menghasilkan lebar maksimum keseluruhan yang dibutuhkan oleh RenderObject. h. computeMaxIntrinsicWidth i. computeMinIntrinsicHeight j. computeMaxIntrinsicHeight