📚 Daftar Widget Flutter dengan Tombol Dokumentasi

🧱 1. Widget Dasar

WidgetFungsiKapan DigunakanDokumentasi
StatelessWidgetWidget tanpa state (data) internalUntuk UI statis yang tidak berubahLihat Dokumentasi
StatefulWidgetWidget dengan state (data) internalUntuk UI dinamis yang bisa berubahLihat Dokumentasi
TextMenampilkan teks sederhanaLabel, paragraf, judul, dll.Lihat Dokumentasi
RichTextMenampilkan teks dengan berbagai styleSaat butuh kata tebal/miring dalam satu kalimatLihat Dokumentasi
IconMenampilkan ikon dari set ikonUntuk simbol UI yang umumLihat Dokumentasi

🔷 2. Layout & Struktur

WidgetFungsiKapan DigunakanDokumentasi
ContainerWrapper serbaguna untuk styling & posisiMemberi padding, margin, warna, dekorasiLihat Dokumentasi
RowMenyusun widget anak secara horizontalUntuk item yang berjajar ke sampingLihat Dokumentasi
ColumnMenyusun widget anak secara vertikalUntuk item yang berbaris ke bawahLihat Dokumentasi
StackMenumpuk widget di atas satu sama lainMembuat overlay, badge di atas ikonLihat Dokumentasi
ExpandedMengisi ruang tersisa di Row/ColumnAgar widget meregang mengisi sisa ruangLihat Dokumentasi
FlexibleMemberi fleksibilitas ukuran di Row/ColumnMembagi ruang secara proporsionalLihat Dokumentasi
SizedBoxKotak dengan ukuran tetap atau spasiMemberi jarak antar elemen secara eksplisitLihat Dokumentasi
PaddingMemberi spasi di sekeliling widget anakUntuk memberi ruang napas di dalam kontainerLihat Dokumentasi
CenterMemposisikan anak di tengah parentCara cepat menengahkan satu widgetLihat Dokumentasi
CardPanel dengan sudut tumpul dan bayanganMengelompokkan informasi terkait dalam satu blokLihat Dokumentasi
WrapOtomatis ke baris baru jika tidak muatUntuk chip/tag yang jumlahnya dinamisLihat Dokumentasi

🟢 3. List & Grid

WidgetFungsiKapan DigunakanDokumentasi
ListViewDaftar item yang bisa di-scrollUntuk daftar item yang jumlahnya sedikit dan statisLihat Dokumentasi
ListView.builderLazy loading list (membangun saat terlihat)Daftar item yang panjang atau dari APILihat Dokumentasi
GridViewGrid layout yang bisa di-scrollGaleri foto, katalog produkLihat Dokumentasi
SingleChildScrollViewScroll untuk satu widget anakMembuat halaman form atau konten statis jadi scrollableLihat Dokumentasi
ListTileBaris list standar (ikon, teks, aksi)Item standar di dalam ListViewLihat Dokumentasi
DataTableTabel untuk menampilkan data terstrukturMenampilkan data tabular seperti spreadsheetLihat Dokumentasi
PageViewHalaman yang bisa digeser (swipe)Untuk onboarding screen atau galeri swipeLihat Dokumentasi

🟡 4. Input & Form

WidgetFungsiKapan DigunakanDokumentasi
FormWadah untuk field inputMengelola validasi dan penyimpanan grup inputLihat Dokumentasi
TextFormFieldInput teks dengan integrasi FormInput email, password, dll., dengan validasiLihat Dokumentasi
Checkbox / Radio / SwitchPilihan biner atau tunggalPengaturan, persetujuan syarat, pilihan opsiLihat Dokumentasi
DropdownButtonTombol dropdown dengan daftar pilihanMemilih satu item dari banyak opsiLihat Dokumentasi
SliderPenggeser untuk memilih nilai numerikPengaturan volume, kecerahan, rentang hargaLihat Dokumentasi
showDatePickerFungsi untuk menampilkan dialog tanggalUntuk input tanggal lahir atau jadwalLihat Dokumentasi

🔴 5. Navigasi & Halaman

WidgetFungsiKapan DigunakanDokumentasi
ScaffoldStruktur dasar halaman Material DesignSebagai root dari setiap halaman aplikasiLihat Dokumentasi
AppBarBar bagian atas halamanMenampilkan judul, aksi, dan tombol kembaliLihat Dokumentasi
BottomNavigationBarTab navigasi di bagian bawahPindah antar halaman utama aplikasiLihat Dokumentasi
NavigatorMengelola tumpukan halaman (routes)Untuk pindah halaman (push) dan kembali (pop)Lihat Dokumentasi
TabBar & TabBarViewMembuat tab horizontalDi bawah AppBar untuk sub-navigasiLihat Dokumentasi
DrawerPanel navigasi yang muncul dari sampingMenu tersembunyi dengan banyak link navigasiLihat Dokumentasi

🔵 6. Interaksi & Aksi

WidgetFungsiKapan DigunakanDokumentasi
ElevatedButtonTombol dengan latar belakang (emphasis)Untuk aksi utama di halaman ("Simpan", "Login")Lihat Dokumentasi
TextButtonTombol berupa teks tanpa latar belakangUntuk aksi sekunder ("Batal", "Lupa Password")Lihat Dokumentasi
IconButtonTombol yang hanya berisi ikonAksi umum seperti hapus, edit, favorit di dalam listLihat Dokumentasi
FloatingActionButtonTombol bulat yang "mengambang"Aksi utama dan kontekstual di halaman ("Tambah")Lihat Dokumentasi
GestureDetectorMendeteksi berbagai gesture (ketuk, geser)Membuat widget apa pun jadi interaktifLihat Dokumentasi
InkWellMemberi efek "ripple" saat diketukMemberi feedback visual pada interaksiLihat Dokumentasi

🟣 7. Gambar & Media

WidgetFungsiKapan DigunakanDokumentasi
Image.assetMenampilkan gambar dari folder assetsUntuk logo, ikon kustom, gambar statisLihat Dokumentasi
Image.networkMenampilkan gambar dari URLMenampilkan gambar dari internet/APILihat Dokumentasi
FadeInImageGambar placeholder saat gambar asli dimuatMemperhalus pengalaman memuat gambarLihat Dokumentasi
CircleAvatarWadah bundar, biasanya untuk gambarMenampilkan foto profil penggunaLihat Dokumentasi
PlaceholderKotak silang untuk menandai ruang UISaat merancang layout sebelum ada konten finalLihat Dokumentasi

💬 8. Dialog & Umpan Balik

WidgetFungsiKapan DigunakanDokumentasi
AlertDialogDialog pop-up untuk konfirmasi/informasiMeminta konfirmasi hapus, menampilkan pesan errorLihat Dokumentasi
SnackBarNotifikasi sementara di bawah layarMemberi umpan balik singkat ("Item disimpan")Lihat Dokumentasi
BottomSheetPanel yang muncul dari bawah layarMenampilkan opsi tambahan tanpa pindah halamanLihat Dokumentasi
TooltipMenampilkan pesan saat widget ditahan lamaMemberi petunjuk fungsi sebuah ikon/tombolLihat Dokumentasi
CircularProgressIndicatorIndikator loading berputarMenandakan proses yang sedang berjalanLihat Dokumentasi
LinearProgressIndicatorIndikator loading berupa bar horizontalMenandakan progres unduhan atau unggahanLihat Dokumentasi

🟤 9. Async & State Management

WidgetFungsiKapan DigunakanDokumentasi
FutureBuilderMembangun UI berdasarkan hasil FutureMenampilkan data dari API atau operasi asyncLihat Dokumentasi
StreamBuilderMembangun UI berdasarkan data dari StreamMenampilkan data realtime (chat, data sensor)Lihat Dokumentasi
ValueListenableBuilderMembangun UI dari perubahan satu nilaiUntuk state management sederhanaLihat Dokumentasi