checkbox_grouped 0.8.0+1 copy "checkbox_grouped: ^0.8.0+1" to clipboard
checkbox_grouped: ^0.8.0+1 copied to clipboard

outdated

flutter widget that grouping checkbox, recuperate the actual selection,support multiple selection

example/lib/main.dart

import 'package:checkbox_grouped/checkbox_grouped.dart';
import 'package:flutter/material.dart';

import 'custom_grouped_example.dart';
import 'list_of_grouped.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _MyAppState();
  }
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        primaryColor: Colors.blue,
      ),
      home: MainExample(),
    );
  }
}

class MainExample extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _MainExampleState();
  }
}

class _MainExampleState extends State<MainExample>
    with TickerProviderStateMixin {
  GroupController controller,
      circularController,
      chipsController,
      multipleController,
      multipleCheckController,
      switchController;
  TabController tabController;

  @override
  void initState() {
    super.initState();
    tabController = TabController(initialIndex: 0, length: 4, vsync: this);
    controller = GroupController(initSelectedItem: [2]);
    circularController = GroupController();
    switchController = GroupController();
    chipsController = GroupController(isMultipleSelection: true);
    multipleController = GroupController(isMultipleSelection: true);
    multipleCheckController = GroupController(
      isMultipleSelection: true,
      initSelectedItem: [2, 5, 4],
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("examples"),
        bottom: TabBar(
          controller: tabController,
          onTap: (index) {
            tabController.index = index;
          },
          tabs: <Widget>[
            Text("basics"),
            Text("customs"),
            Text("dialog"),
            Text("list of grouped"),
          ],
        ),
      ),
      body: TabBarView(
        controller: tabController,
        children: <Widget>[
          SingleChildScrollView(
            controller: ScrollController(),
            child: Column(
              mainAxisSize: MainAxisSize.max,
              children: <Widget>[
                SimpleGroupedCheckbox<int>(
                  controller: controller,
                  //groupTitle:"Basic",
                  onItemSelected: (data) {
                    print(data);
                    if (data == 1) {
                      controller.disabledItemsByTitles(["5"]);
                    } else if (data == 4) {
                      controller.enabledItemsByTitles(["5", "2"]);
                      controller.disabledItemsByTitles(["1"]);
                    } else if (data == 2) {
                      controller.enabledItemsByTitles(["1"]);
                    }
                  },
                  disableItems: ["5"],
                  itemsTitle: ["1", "2", "4", "5"],
                  values: [1, 2, 4, 5],
                  activeColor: Colors.red,
                  checkFirstElement: false,
                ),
                SimpleGroupedCheckbox<int>(
                  controller: circularController,
                  groupTitle: "Circulaire Checkbox",
                  itemsTitle: ["1 ", "2 ", "4 ", "5 "],
                  values: [1, 2, 4, 5],
                  isCirculaire: true,
                  activeColor: Colors.blue,
                  isLeading: true,
                  checkFirstElement: false,
                ),
                SimpleGroupedCheckbox<int>(
                  controller: multipleCheckController,
                  itemsTitle: List.generate(10, (index) => "$index"),
                  values: List.generate(10, (index) => index),
                  activeColor: Colors.green,
                  groupTitle: "expanded multiple checkbox selection",
                  groupTitleStyle: TextStyle(color: Colors.orange),
                  checkFirstElement: false,
                  helperGroupTitle: false,
                  onItemSelected: (data) {
                    print(data);
                  },
                  isExpandableTitle: true,
                ),
                Divider(),
                SimpleGroupedChips<int>(
                  controller: chipsController,
                  values: List.generate(7, (index) => index),
                  itemTitle: List.generate(7, (index) => "chip_text_$index"),
                  backgroundColorItem: Colors.black26,
                  isScrolling: false,
                  onItemSelected: (values) {
                    print(values);
                  },
                ),
                Divider(),
                Text("grouped switch"),
                SimpleGroupedSwitch<int>(
                  controller: switchController,
                  itemsTitle: List.generate(10, (index) => "$index"),
                  values: List.generate(10, (index) => index),
                  disableItems: [2],
                  textStyle: TextStyle(fontSize: 16),
                  activeColor: Colors.red,
                  onItemSelected: (values) {
                    print(values);
                  },
                ),
              ],
            ),
          ),
          CustomGroupedExample(),
          Column(
            children: <Widget>[
              FlatButton(
                onPressed: () async {
                  var values = await showDialogGroupedCheckbox(
                      context: context,
                      cancelDialogText: "cancel",
                      isMultiSelection: true,
                      itemsTitle: List.generate(15, (index) => "$index"),
                      submitDialogText: "select",
                      dialogTitle: Text("example dialog"),
                      values: List.generate(15, (index) => index));
                  if (values != null) {
                    print(values);
                  }
                },
                child: Text("show dialog checkbox grouped"),
              ),
            ],
          ),
          ListOfGrouped(),
        ],
      ),
    );
  }
}
41
likes
0
pub points
93%
popularity

Publisher

unverified uploader

flutter widget that grouping checkbox, recuperate the actual selection,support multiple selection

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

auto_size_text, flare_flutter, flutter

More

Packages that depend on checkbox_grouped