📄
FlutterCheatSheet
  • About
  • Flutter web
    • Download in flutter web
    • Fluter run web selain chrome
    • Mengatasi CORS
  • My Note
    • Cara mudah setting Firebase
    • solusi text overflow
    • Setting Firebase Mobile
    • Setting MinSDK Android
    • Run build runner
    • Load Json FromAsset
    • Set Height TabBar
    • WillPopScope
    • Dropdown with null
    • Interview Flutter
    • shortcut android studio
    • Build with different main.dart
    • Validating email
    • search delay
    • Hive
    • penggunaan sort maupun func lain
    • incompatible version of Kotlin.
    • Google Signin error
    • add Map to Map
    • Cors Anywhere
    • run scrcpy simple
    • android studio adb server version (41) doesn't match this client (39); killing
    • Connect adb with hotspot
    • Bloc , intinya...
    • Restorable state
    • Custom Theme DatePicker Flutter
    • membungkus widget dengan tema
    • All About Extention
    • Provider watch read
    • Provider , App works in debug mode but does not work in release mode
    • make extention
    • Sliver app bar
    • Custom Error screen
    • Rename Package
    • error build on AndroidStudio from vscode
    • add tooltip to all widget
    • Textformfield validator
    • Membuat String Rupiah
    • Sort List Dart
    • chart
    • membuat Date time lokal
    • Change default PageTransition
    • Show Hide Password
    • Error UserFriendly
    • Responsive adaptive layout
    • Tips SingleScrollingView
    • Build context
    • FittedBox
    • validation
      • Dropdown validation
    • alertDialog
      • Mixin
      • FocusNode
      • WebView url listener
      • tips statefull pada alertdialog
      • run-code-after-showdialog-is-dismissed
    • Set package in VS Code when creating a project
  • Usefull source
    • Setting JAVA_HOME
    • Tools for Flutter
    • WEBVIEW
    • membuat Marque
    • LazyLoad
    • Tips
      • Penggunaan Const
      • 3 Dots
      • How Disable all Widget
    • List article
    • List Web Complete Tutorial
    • List library
    • Parsing nested Json
    • Future
      • Tips Clean Code
      • Custom Future
      • Chaining Future
      • Catch error
    • Flutter Sample HTTP Request Github with https://reqres.in/
    • Const vs Final
    • Constructor
    • Function
    • Font
    • CRUD
    • Key
    • Free bootcamp
    • State Manajement
      • Provider
  • Widgets
    • Top 5 Box widget
    • Framework library
      • GetFlutter
      • FLUI
    • kumpulan widget
      • Spacer
      • ClipRRect
      • Switch
      • FittedBox
      • List dari Model
      • Dropdown
        • DropDown Multi
    • Deep Dive
      • Button
      • Card
      • Flexible and Expanded
      • Layout Builder
  • Interview Question
    • Kumpulan Pertannyaan Interview
      • Interview Question link Flutter
      • Interview Question With Answer
  • kasus dari stackoverflow
    • Text Red in Hero
    • firebase issued
    • Untitled
  • library
    • Rapido
    • autoscroll text
Powered by GitBook
On this page

Was this helpful?

  1. Widgets
  2. kumpulan widget

Dropdown

PreviousList dari ModelNextDropDown Multi

Last updated 4 years ago

Was this helpful?

String dropdownValue = 'One';

@override
Widget build(BuildContext context) {
  return DropdownButton<String>(
    value: dropdownValue,
    icon: Icon(Icons.arrow_downward),
    iconSize: 24,
    elevation: 16,
    style: TextStyle(
      color: Colors.deepPurple
    ),
    underline: Container(
      height: 2,
      color: Colors.deepPurpleAccent,
    ),
    onChanged: (String newValue) {
      setState(() {
        dropdownValue = newValue;
      });
    },
    items: <String>['One', 'Two', 'Free', 'Four']
      .map<DropdownMenuItem<String>>((String value) {
        return DropdownMenuItem<String>(
          value: value,
          child: Text(value),
        );
      })
      .toList(),
  );
}

ini untuk multi seperti kecamatan, kabupaten

Asslamu’alaikum Wr. Wb.

Hallo sobat flutter kembali lagi di posting saya , pada postingan kali ini saya akan membahas tentang Dropdown Menu Button apasih Dropdown Menu Button itu, Dropdown Menu Button adalah sebuah menu yang menampilkan sebuah daftar data yang fungsinya untuk memilih suatu nilai data itu sendiri untuk di inputkan kedalam suatu data global, tapi pada postingan kali ini kita akan melanjutkan materi yang kemarin menggukan rest api sebagai datanya dan kita akan buat bercabang atau saling berhubungan contohnya ketika kita memilih suatu tujuan lokasi pada saat pembelian kita akan di tampilkan sebuah dropdown dengan sebuah list array provinsi dan setelah selesai memilih array provinsi maka akan muncul otomatis list arrray kota sesuai dengan provinsi yang kita pilih okeh langsung saja kita mulai:

  1. Sebelumnya kita telah membuat project ini pada saat kemarin kalian dapat melihat projectnya di link berikut ini :

2. Lalu kita bisa tambahkan sebuah method baru yang mana itu untuk mengirim request terhadap webservice disini saya menggunakan contoh setelah memilih provinsi maka dia akan melakukan request untuk meminta data kota sesuai dengan id provinsi nya maka kita akan membuat sebuah fungsi method yang mana dia membutuhkan parameter id provinsi itu sendiri kurang lebih seperti ini

3. Setelah terbuat maka ada sedikit perubahan pada dropdown button yang pertama, dikarenakan pada suatu saat ketika melakukan request untuk meminta data city atau kota kita memerlukan id provinsi maka value pada dropdown provinsi kita ganti menjadi nilai id nya bukan nilai nama provinsinya dan pada bagian onchange setelah kita men set atau memberi tahu ada perubahan di dalam _valProvince maka kita jalan kan juga fungsi method untuk merequest data kota yang tadi telah kita buat yang mana isian parameter nya adalah value itu sendiri kurang lebih seperti ini :

Text("Silahkan pilih provinsi tujuan"),

DropdownButton(
  hint: Text("Select Province"),
  value: _valProvince,
  items: _dataProvince.map((item){
    return DropdownMenuItem(
      child: Text(item['province']),
      value: item['id'],
    );
  }).toList(),
  onChanged: (value) {
    setState(() {
      _valProvince = value;
    });
    getCity(value);
  },
),

4. Kemudian kita buat Dropdown yang kedua untuk menu list kota nya seperti ini :

Text("Silahkan pilih kota tujuan"),DropdownButton(
  hint: Text("Select City"),
  value: _valCity,
  items: _dataCity.map((item){
    return DropdownMenuItem(
      child: Text("${item['type']} ${item['city']}"),
      value: item['id'],
    );
  }).toList(),
  onChanged: (value) {
   setState(() {
     _valCity = value;
   });
  },
),

Nah disini error nya menjelaskan bahwa item atau value nya harus null nah pertanyaanya value siapa yang harus kita null, yah benar valuenya si kota atau city jadi ketika kita memilih provinsi untuk kedua kalinya maka kita harus mereset ulang nilai value pada nilai value kota menjadi null lagi, lalu dimana kita mereset nilai value nya yaitu pada saat terjadi perubahan pada saat mengganti provinsi, yah benar kita taruh pada setState perubahan provinsi kurang lebih seperti ini :

Text("Silahkan pilih provinsi tujuan"),

DropdownButton(
  hint: Text("Select Province"),
  value: _valProvince,
  items: _dataProvince.map((item){
    return DropdownMenuItem(
      child: Text(item['province']),
      value: item['id'],
    );
  }).toList(),
  onChanged: (value) {
    setState(() {
      _valProvince = value;
      _valCity = null;
    });
    getCity(value);
  },
),

6. Maka kurang lebih untuk full source code nya seperti ini :

5. Oke pada tahap kali ini kita dapat menampilkan kota sesuai dengan nama nya akan tetapi masih ada problem satu lagi, yah benar pada saat kita mengganti pilihan provinsi untuk kedua kalinya maka aplikasi kita akan memunculkan sebuah error seperti ini :

7. Maka ketika kita running maka tampilannya seperti ini :

Flutter Dropdown Menu From Rest APIMedium
Flutter Branched Dropdown Menu From Rest API - UDACODINGUDACODING
Flutter Branched Dropdown Menu From Rest APIMedium
Logo
Logo
Logo