Belajar Widget Flutter : Expanded

Dhe997

Expanded

Sejauh ini kita telah mempelajari beberapa widget dasar dan bagaimana menyusunnya secara horizontal maupun vertikal. 

Dalam pengembangan aplikasi mobile kita tahu bahwa terdapat banyak sekali perangkat dengan ukuran layar yang berbeda pula. Untuk itu penting bagi kita untuk bisa menyusun tampilan yang responsif terhadap ukuran layar.
Kira-kira bagaimana Anda akan menyusun layout dengan tampilan seperti berikut?

20200615161011d0bb9c837344b597049b67d0898cbf75.jpeg
Tentunya akan sangat merepotkan apabila kita mengatur tinggi dari masing-masing kotak, bukan? Belum lagi jika harus mengembangkan aplikasi di ukuran yang lebih besar seperti perangkat tablet. 
Flutter memiliki widget Expanded yang dapat mengembangkan child dari Row atau Column sesuai dengan ruang yang tersedia. Cara menggunakannya Anda cukup membungkus masing-masing child ke dalam Expanded.
  1. class Rainbow extends StatelessWidget {
  2.   @override
  3.   Widget build(BuildContext context) {
  4.     return Column(
  5.       children: <Widget>[
  6.         Expanded(
  7.           child: Container(
  8.             color: Colors.red,
  9.           ),
  10.         ),
  11.         Expanded(
  12.           child: Container(
  13.             color: Colors.orange,
  14.           ),
  15.         ),
  16.         Expanded(
  17.           child: Container(
  18.             color: Colors.yellow,
  19.           ),
  20.         ),
  21.         Expanded(
  22.           child: Container(
  23.             color: Colors.green,
  24.           ),
  25.         ),
  26.         Expanded(
  27.           child: Container(
  28.             color: Colors.blue,
  29.           ),
  30.         ),
  31.         Expanded(
  32.           child: Container(
  33.             color: Colors.indigo,
  34.           ),
  35.         ),
  36.         Expanded(
  37.           child: Container(
  38.             color: Colors.purple,
  39.           ),
  40.         ),
  41.       ],
  42.     );
  43.   }
  44. }

Saat aplikasi dijalankan, masing-masing container akan menempati ruang kosong yang ada. Jika Anda menjalankan di ukuran layar yang berbeda, maka ukuran container juga akan menyesuaikan.
2020061516111745a046ee02c506aa469a828fe8cb8cdd.jpeg
Bisa kita lihat seluruh container menempati ruang dengan ukuran yang sama. Ini disebabkan Expanded memiliki parameter flex yang memiliki nilai default 1. 
Anda dapat mengubah nilai flex ini sesuai perbandingan yang diinginkan. Misalnya Anda memberikan nilai flex 2 pada salah satu container.


  1. Expanded(

  2.   flex: 2,

  3.   child: Container(

  4.     color: Colors.blue,

  5.   ),

  6. ),



Maka container berwarna biru ini akan menjadi lebih besar dengan perbandingan 2/(1 + 1 + 1 + 1 + 2 + 1 + 1) atau 2/8 dari halaman.

20200615161338103190234521f130325fd1dabc87f651.jpeg
Dokumentasi berikut ini dapat Anda pelajari untuk memaksimalkan penggunaan widget Expanded Class.


Posting Komentar

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.