Belajar Flutter Basic #3 - Membuat Tabs
Belajar Flutter Basic #3 - Membuat Tabs
Pendahuluan
Seringkali kita temukan pada kebanyakan aplikasi mobile adalah pengelompokan konten yang ditampilkan menggunakan
tabs. Sebut saja, Whatsapp membaginya menjadi 4 tabs (note: saat artikel ini ditulis), yakni: Icon kamera, Chat, Status &
Panggilan. Pun hal yang sama berlaku pada aplikasi lainnya, seperti: Facebook, Instagram, dan lain-lain.
Tabs sendiri terkadang ditempatkan pada top position ataupun bottom position dan tak jarang juga menggunakan
keduanya. Tabs sendiri memiliki peranan penting dalam meng-handle konten, mengingat workspace dari aplikasi mobile
ukurannya terbatas sesuai dengan perangkat smartphone pada umumnya. Sehingga Tabs membuat sekat agar dapat
memuat lebih banyak konten dalam satu halaman.
void main() {
runApp(DWTabs());
}
Penjelasan:
main() me-load class DWTabs() yang merupakan StatefulWidget. Berbeda halnya dengan StatelessWidget yang
sifatnya statis sehingga tidak dapat di-render kembali setelah component di-load. StatefulWidget sifatnya dinamis
sehingga dapat di-render kembali saat ketika terdapat event atau user actions.
createState() dari StatefulWidget berfungsi untuk membuat mutable state, dalam hal ini me-load class
DwTabState() .
Pada DwTabState me-load SingleTickerProviderStateMixin yang bertujuan untuk membuat AnimationController
pada Tab. Sedangkan baris selanjutnya hanya berisi widget Scaffold untuk membuat AppBar.
Langkah kedua adalah membuat TabController, masih didalam le yang sama, modi kasi class DwTabState menjadi:
class DwTabState extends State<DWTabs> with SingleTickerProviderStateMixin {
//CODE BARU
TabController controller;
@override
void initState() {
super.initState();
controller = TabController(vsync: this, length: 3); //LENGTH = TOTAL TAB YANG AKAN DIBUAT
}
@override
void dispose() {
controller.dispose();
super.dispose();
}
@override
Langkah terakhir adalah dengan menambahkan TabBar widget untuk menampilkan tab yang di-inginkan pada aplikasi
yang sedang dibuat. Masih didalam le yang sama, tambahkan code berikut pada class DwTabState :
class DwTabState extends State<DWTabs> with SingleTickerProviderStateMixin {
TabController controller;
@override
void initState() {
super.initState();
controller = TabController(vsync: this, length: 3);
}
@override
void dispose() {
controller.dispose();
super.dispose();
}
@override
Penjelasan:
TabBar kita tempatkan didalam AppBar pada property bottom . TabBar sendiri memiliki beberapa property
diantaranya: controller dan tabs . Value dari property controller didapatkan dari variable controller yang
telah dibuat pada step kedua. Sedangkan tabs dapat menampung lebih dari satu objek. Karena pada step kedua,
length memiliki nilai 3, maka kita akan membuat 3 buah Tab() dimana masing-masing tab memiliki icon yang
berbeda.
Pada bagian body yang merupakan property dari Scaffold() , tambahkan Widget TabBarView() untuk menampilkan
content dari tab yang sedang aktif. Property dari TabBarView yang akan digunakan adalah controller dengan value
variable controller yang telah dibuat sebelumnya, dan children yang berisi custom widget yang akan kita buat
setelah ini.
import 'package:flutter/material.dart';
Note: Class ini akan menampilkan list Artikel terbaru yang dibungkus dengan card, dimana didalam card terdapat Image
dan Text untuk gambarnya. Sedangkan untuk penjelasan dari code diatas sudah dibahas pada artikel Belajas Flutter Basic
#2.
import 'package:flutter/material.dart';
Agar dapat menggunakan ketiga class yang baru saja dibuat, buka le main.dart kemudian import ketiga le tersebut:
import './home.dart';
import './popular.dart';
import './news.dart';
Apabila dijalankan maka hasil yang akan kita peroleh akan tampak seperti berikut
Kesimpulan
Sepanjang pembahasa bagaimana membuat sebuah Tabs menggunakan Flutter, kita juga telah mengulang materi
sebelumnya yakni bagaimana membuat column, card, menampilkan image, dan yang terpenting adalah memahami
struktur dan cara menggunakan widget dari Flutter.
Anugrah sandi
Full Stack Developer & Remote Worker salah satu perusahaan asal Australia. Senang dengan
teknologi baru. Laravel addict yang tidak fanatik. Merekam jejak dengan menulis
Bagikan 15
FLUTTER FLUTTER FLUTTER
Komentar
Sponsored
Zoom Users - Here’s How Using a VPN Can Keep You More Secure
TheTopFiveVPN
Robert Redford's Daughter Is Probably The Prettiest Woman Who Ever Existed
Healthy George
Ikut berdiskusi...
MASUK DENGAN
ATAU DAFTAR DISQUS ?
Nama
Yamashita Hatsuharu • sebulan yang lalu
saya error ini munculnya, bagaimana ya?
△ ▽ • Balas • Bagikan ›
lainnya
△ ▽ • Balas • Bagikan ›
Zoom Users - Here’s How Using a VPN Can Keep You More Secure
TheTopFiveVPN
Her Belly Keeps Growing, Doctor Sees Scan And Calls Cops
Housediver
Robert Redford's Daughter Is Probably The Prettiest Woman Who Ever Existed
Healthy George