Advertisement
yudiwibisono

filterchip2

May 20th, 2023
1,334
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 1.80 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: JenisMakanan.values
  53.                   .map((JenisMakanan j) => FilterChip(
  54.                         label: Text(j.name),
  55.                         selected: filters.contains(j),
  56.                         onSelected: (bool val) {
  57.                           setState(() {
  58.                             if (val) {
  59.                               filters.add(j);
  60.                             } else {
  61.                               filters.remove(j);
  62.                             }
  63.                           });
  64.                         },
  65.                       ))
  66.                   .toList(),
  67.             )
  68.            
  69.             ),
  70.         Container(height: 10.0),
  71.         Text(
  72.           'Hasil: ${filters.map((JenisMakanan e) => e.name).join(', ')}',
  73.         ),
  74.       ])),
  75.     );
  76.   }
  77. }
  78.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement