Belajar Container di Flutter

Dhe997

Container

Bagaimana sejauh ini? Semoga materinya dapat Anda praktikkan dengan mulus ya.
Pada bagian sebelumnya kita mempelajari widget Scaffold. Kini saatnya belajar tentang widget Container. 
Container adalah widget yang digunakan untuk melakukan styling, membuat sebuah shape (bentuk), dan layout pada widget child-nya. Sebagai contoh:



  1. Container(

  2.   child: Text('Hi, style: TextStyle(fontSize: 40)),

  3.   color: Colors.blue,

  4. )





Pada kode di atas kita membuat sebuah Text "Hi" yang dibungkus oleh widget Container dan kita beri parameter color dengan nilai Colors.blue
Apa hasilnya? Text "Hi" akan memiliki background berwarna biru. Jalankan project Anda untuk menampilkan hasil seperti berikut:

202006151925510970dfdff0d8d3707d2e2398375e1a60.jpeg

Width & Height

Kita dapat mengatur lebar (width) dan tinggi (height) suatu Container seperti berikut:


  1. Container(

  2.   child: Text('Hi', style: TextStyle(fontSize: 40),),

  3.   color: Colors.blue,

  4.   width: 200,

  5.   height: 100

  6. )



Kode di atas ketika dijalankan hasilnya akan seperti berikut:

202006151926106c3cd59344ca17857072130d6352701a.jpeg

Padding & Margin

Container menyediakan padding & margin. Padding merupakan jarak antara konten (child) dengan Container, sedangkan margin merupakan jarak antara Container dengan bagian luar container.
Penggunaan padding adalah seperti berikut:


  1. Container(

  2.  child: Text('Hi, style: TextStyle(fontSize: 40),),

  3.  color: Colors.blue,

  4.  padding: EdgeInsets.all(10),

  5. )





Pada kode di atas kita menambahkan padding pada semua sisi container secara merata dengan nilai 10. Maka jika me-refresh aplikasi flutter, akan ada jarak antara Text "Hi" dengan batas (border) dari container.

2020061519270856b04fa599ff5df0262b764052542ac8.jpeg
Lalu penggunaan margin pun sama seperti halnya padding, maka contoh kodenya seperti berikut:


  1. Container(

  2.  child: Text('Hi', style: TextStyle(fontSize: 40),),

  3.  color: Colors.blue, 

  4.  margin: EdgeInsets.all(10) 

  5. )



Maka hasil dari kode di atas Container akan bergeser lebih ke dalam karena ada jarak antara Container dengan bagian luar Container.
20200615113243b2f8da0cf1d7be70d09c0e922fde6ee9.jpeg

Decoration

Decoration merupakan bagian dari Container untuk styling. Pada decoration kita dapat menentukan warna background (solid/gradient color), shadowborderborder radius (membulatkan sudut), mengatur shape (bentuk), dan lain-lain.

Color

Contoh menentukan warna background dari container dengan decoration seperti berikut:


  1. Container(

  2.   child: Text('Hi', style: TextStyle(fontSize: 40),),

  3.   decoration: BoxDecoration(

  4.     color: Colors.red,

  5.   ),

  6. )





Ketika dijalankan maka tampilan aplikasi akan seperti berikut:

20200615192933b608ccce9f54b3ac0e012b53b590c409.jpeg
Untuk menggunakan decoration cukup menambahkan parameter decoration pada Container lalu beri nilai BoxDecoration. 
Pada contoh di atas kita merubah warna Container menjadi merah dengan memberi parameter color pada BoxDecoration. Ada catatan penting ketika menggunakan color pada BoxDecoration, yaitu pastikan tidak memberi parameter color pada Container.

Shape

Contoh selanjutnya pada decoration adalah kita akan mengatur shape (bentuk) dari Container, contohnya sebagai berikut:


  1. Container(

  2.   child: Text('Hi', style: TextStyle(fontSize: 40),),

  3.   decoration: BoxDecoration(

  4.     color: Colors.red,

  5.     shape: BoxShape.circle,

  6.   ),

  7. )



Pada kode di atas kita menambahkan parameter shape dengan nilai BoxShape.circle. Artinya, bentuk dari Container tersebut akan berbentuk lingkaran. BoxShape memiliki opsi circle atau rectangle.

202006151929504f732b0253654199eee3af0867529282.jpeg

Shadow

Untuk menambahkan shadow pada Container kita akan menambahkan parameter boxShadow pada BoxDecoration, seperti berikut:


  1. Container(

  2.   child: Text('Hi', style: TextStyle(fontSize: 40),),

  3.   decoration: BoxDecoration(

  4.      color: Colors.red,

  5.      boxShadow: [

  6.       BoxShadow(color: Colors.black, offset: Offset(3, 6), blurRadius: 10)

  7.      ],

  8.   ),

  9. )



Pada kode di atas parameter boxShadow merupakan sebuah Array. Di dalamnya terdapat BoxShadow yang artinya pada Container kita dapat memberikan banyak bayangan atau shadow.

202006151930121a08754655373208b1bfbfb97b163cfd.jpeg

Border

Border merupakan batas garis dengan content (child). Begini cara menambahkan border pada container: 


  1. Container(

  2.   child: Text('Hi', style: TextStyle(fontSize: 40),),

  3.   decoration: BoxDecoration(

  4.     color: Colors.red,

  5.     border: Border.all(color: Colors.green, width: 3),

  6.   ),

  7. )




2020061511423652a013a86d133800a086bda512eb3ff4.jpeg
Apabila Anda ingin membuat border yang tidak berujung lancip cukup tambahkan parameter borderRadius Pada BoxDecoration seperti berikut:


  1. Container(

  2.   child: Text('Hi', style: TextStyle(fontSize: 40),),

  3.   decoration: BoxDecoration(

  4.    color: Colors.red,

  5.    border: Border.all(color: Colors.green,width: 3),

  6.    borderRadius: BorderRadius.circular(10)

  7.   ),

  8. )


20200615114318fbb34873394dad111e5f8010b4dd48a6.jpeg

Kesimpulan

Dengan menggunakan Widget Container kita dapat membuat variasi widget yang kita buat. Sebenarnya banyak sekali parameter-parameter yang dapat digunakan pada Container dan juga pada BoxDecoration. Anda dapat mengeksplorasi hal tersebut dengan mencarinya di Google atau pada dokumentasi resmi flutter.

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.