Advertisement
yudiwibisono

filterchip1

May 20th, 2023 (edited)
997
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 2.22 KB | None | 0 0
  1. import 'package:flutter/material.dart';
  2.  
  3. void main() {
  4.   runApp(const MyApp());
  5. }
  6.  
  7. enum Sizes { extraSmall, small, medium, large, extraLarge }
  8.  
  9. class MyApp extends StatefulWidget {
  10.   const MyApp({Key? key}) : super(key: key);
  11.   @override
  12.   State<StatefulWidget> createState() {
  13.     return MyAppState();
  14.   }
  15. }
  16.  
  17. enum JenisMakanan {
  18.   sunda,
  19.   yogya,
  20.   solo,
  21.   chinese,
  22.   sumsel,
  23.   padang,
  24.   jepang,
  25.   korea,
  26.   western,
  27.   betawi,
  28.   tegal,
  29.   menado,
  30.   gorontalo,
  31.   aceh,
  32.   medan,
  33.   seafood
  34. }
  35.  
  36. class MyAppState extends State<MyApp> {
  37.   //mana yang dipilih
  38.   Set<JenisMakanan> filters = <JenisMakanan>{};
  39.  
  40.   @override
  41.   Widget build(Object context) {
  42.     return MaterialApp(
  43.       theme: ThemeData(useMaterial3: true),
  44.       home: Scaffold(
  45.           body: Column(children: [
  46.         Container(
  47.             decoration: BoxDecoration(border: Border.all()),
  48.             padding: EdgeInsets.all(14),
  49.             width: 300,
  50.             child: Wrap(
  51.               spacing: 10,
  52.               children: [
  53.                 FilterChip(
  54.                   label: Text(JenisMakanan.sunda.name),
  55.                   selected: filters.contains(JenisMakanan.sunda),
  56.                   onSelected: (bool val) {
  57.                     setState(() {
  58.                       if (val) {
  59.                         filters.add(JenisMakanan.sunda);
  60.                       } else {
  61.                         filters.remove(JenisMakanan.sunda);
  62.                       }
  63.                     });
  64.                   },
  65.                 ),
  66.                 FilterChip(
  67.                   label: Text(JenisMakanan.padang.name),
  68.                   selected: filters.contains(JenisMakanan.padang),
  69.                   onSelected: (bool selected) {
  70.                     setState(() {
  71.                       if (selected) {
  72.                         filters.add(JenisMakanan.padang);
  73.                       } else {
  74.                         filters.remove(JenisMakanan.padang);
  75.                       }
  76.                     });
  77.                   },
  78.                 ),
  79.               ],
  80.             )),
  81.         Container(height: 10.0),
  82.         Text(
  83.           'Hasil: ${filters.map((JenisMakanan e) => e.name).join(', ')}',
  84.         ),
  85.       ])),
  86.     );
  87.   }
  88. }
  89.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement