Selamat malam teman teman,pada kesempatan kali ini saya ingin membagi tutorial bagaimana cara membuat spinner multi select menggunakan flutter dengan memanfaatkan package multi_select_flutter. Pada tutorial kali ini saya menggunakan versi ^4.0.0 .
Adapun hasil akhir tampilan dari tutorial kali ini adalah seperti berikut:
OK,Untuk menggunakan package multi_select_flutter kita harus menambahkan pada file pubspec.yaml seperti contoh dibawah:
Jangan lupa setelah menambahkan dependencies ke pubspec.yaml agar melakukan perintah flutter pub get pada terminal yang bertujuan memerintahkan flutter untuk menambahkan dependencies ke folder dependencies yang telah flutter sediakan.
Atau bisa dengan cara klik "Pub get" pada sudut kanan atas di file pubspec.yaml.
Selanjutnya kita perlu ubah isi dari file main.dart menjadi seperti berikut:
import 'package:flutter/material.dart'; import 'package:multi_select_flutter/bottom_sheet/multi_select_bottom_sheet_field.dart'; import 'package:multi_select_flutter/chip_display/multi_select_chip_display.dart'; import 'package:multi_select_flutter/util/multi_select_item.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'Multi Select', theme: ThemeData( primarySwatch: Colors.blue, ), home: MyHomePage(title: 'Multi Select'), ); } } class MyHomePage extends StatefulWidget { MyHomePage({Key? key, required this.title}) : super(key: key); final String title; @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { static List<SpinnerMulti> _angka = [ SpinnerMulti(id: 1, name: "Satu"), SpinnerMulti(id: 2, name: "Dua"), SpinnerMulti(id: 3, name: "Tiga"), SpinnerMulti(id: 4, name: "Empat"), SpinnerMulti(id: 5, name: "Lima"), ]; final _itemsAngka = _angka .map((angka) => MultiSelectItem<SpinnerMulti>(angka, angka.name)) .toList(); List<SpinnerMulti?> _selectedAngka = []; @override void initState() { super.initState(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Container( padding: EdgeInsets.symmetric(vertical: 20, horizontal: 10), child: SingleChildScrollView( child: Column( children: [ Container( decoration: BoxDecoration( border: Border.all( color: Color.fromRGBO(33, 33, 33, 0.5), width: 1, ), borderRadius: BorderRadius.circular(10), ), child: MultiSelectBottomSheetField<SpinnerMulti?>( initialChildSize: 0.7, decoration: BoxDecoration(color: Colors.transparent), maxChildSize: 0.95, title: Text("Angka"), buttonText: Text( "Angka", style: TextStyle(color: Color.fromRGBO(33, 33, 33, 0.7)), ), items: _itemsAngka, searchable: true, searchHint: "Cari", buttonIcon: Icon( Icons.add_circle_outline, color: Color.fromRGBO(33, 33, 33, 0.5), ), cancelText: Text("Tutup"), onConfirm: (values) { setState(() { _selectedAngka = values; }); }, chipDisplay: MultiSelectChipDisplay( decoration: BoxDecoration( border: Border( top: BorderSide( width: 1.0, color: Color.fromRGBO(33, 33, 33, 0.5)), ), ), onTap: (item) {}, ), ) // This trailing comma makes auto-formatting nicer for build methods. ), ], ), ), )); } } class SpinnerMulti { final int id; final String name; SpinnerMulti({required this.id, required this.name}); }
Setelah semua langkah sudah kita lakukan,silahkan running project nya...
Sekian tutorial kali ini, Jangan sungkan untuk bertanya di kolom komentar di bawah jika mendapat error....
0 komentar:
Post a Comment
Informasi:
Form komentar ini menggunakan moderasi, setiap komentar yang masuk akan melalui proses pemeriksaan sebelum ditampilkan dalam kolom komentar.
Memasang link dan konten yang mengandung pornografi di komentar tidak akan di tampilkan. Hanya komentar yang membangun dan sesuai topik artikel saja yang akan kami tampilkan.
Mohon maaf atas ketidaknyamanannya.