expansion_form 0.0.3 copy "expansion_form: ^0.0.3" to clipboard
expansion_form: ^0.0.3 copied to clipboard

Form with expansion items.

example/lib/main.dart

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: MyWidget(),
      ),
    );
  }
}

class MyWidget extends StatefulWidget {
  @override
  _MyWidgetState createState() => _MyWidgetState();
}

class _MyWidgetState extends State<MyWidget> {
  GlobalKey<FiltroState> filtroKey;
  var isFormValid = false;

  _onValidationChange(bool value) {
    setState(() {
      isFormValid = value;
    });
  }

  @override
  void initState() {
    filtroKey = GlobalKey<FiltroState>();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Filtro example"),
      ),
      body: Column(
        children: <Widget>[
          Filtro(
            key: filtroKey,
            onValidateChange: _onValidationChange,
            items: [
              FiltroItemModel(
                name: "Estado",
                key: "estado",
                dependents: ["rede"],
                isRequired: true,
                options: [
                  FiltroItemOptionModel(
                    key: "ba",
                    name: "Bahia",
                  ),
                  FiltroItemOptionModel(
                    key: "rj",
                    name: "Rio de Janeiro",
                  ),
                ],
              ),
              FiltroItemModel(
                name: "Rede",
                key: "rede",
                dependents: ["loja"],
                isRequired: true,
                optionsDependency: {
                  "ba": [
                    FiltroItemOptionModel(
                      key: "walmart",
                      name: "Walmart",
                    ),
                    FiltroItemOptionModel(
                      key: "mix_bahia",
                      name: "Mix Bahia",
                    ),
                  ],
                  "rj": [
                    FiltroItemOptionModel(
                      name: "Pão de Açúcar",
                      key: "pao_de_acucar",
                    ),
                    FiltroItemOptionModel(
                      name: "Sonda",
                      key: "sonda",
                    ),
                  ],
                },
              ),
              FiltroItemModel(
                name: "Loja",
                key: "loja",
                isRequired: true,
                optionsDependency: {
                  "walmart": [
                    FiltroItemOptionModel(
                      key: "walmart_1",
                      name: "Walmart 1",
                    ),
                    FiltroItemOptionModel(
                      key: "walmart_2",
                      name: "Walmart 2",
                    ),
                    FiltroItemOptionModel(
                      name: "Mix Bahia 2",
                      key: "mix_bahia_2",
                    ),
                  ],
                  "mix_bahia": [
                    FiltroItemOptionModel(
                      name: "Mix Bahia 1",
                      key: "mix_bahia_1",
                    ),
                    FiltroItemOptionModel(
                      name: "Mix Bahia 2",
                      key: "mix_bahia_2",
                    ),
                  ],
                  "pao_de_acucar": [
                    FiltroItemOptionModel(
                      name: "Pão de Açúcar 1",
                      key: "pao_de_acucar_1",
                    ),
                    FiltroItemOptionModel(
                      name: "Pão de Açúcar 2",
                      key: "pao_de_acucar_2",
                    ),
                  ],
                  "sonda": [
                    FiltroItemOptionModel(
                      name: "Sonda 1",
                      key: "sonda_1",
                    ),
                    FiltroItemOptionModel(
                      name: "Sonda 2",
                      key: "sonda_2",
                    ),
                  ],
                },
              ),
            ],
          ),
          RaisedButton(
            onPressed: isFormValid
                ? () {
                    print(filtroKey.currentState.selectedOptions);
                  }
                : null,
            child: Text("Confirm"),
          ),
        ],
      ),
    );
  }
}
7
likes
20
pub points
0%
popularity

Publisher

unverified uploader

Form with expansion items.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter, flutter_mobx, mobx

More

Packages that depend on expansion_form