Skip to content

indiepaul/xform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XForm

Flutter forms with superpowers.

Simplifies form creation and management. Simply create form fields and the xform will take care of the rest. Moving to the next field on enter, keyboard type based on field type, validation, multipage forms, etc.

Supported Fields

  • XTextField - Your usual text field
  • XDateField - Text field with a date picker
  • XSelectField - Dropdown selection box
  • XCheckbox - Checkbox returning true or false values
  • XCheckboxGroup - Grouped checkboxes returning an array of the selected values
  • XRadioGroup - Grouped radio buttons

Quick Start

  • Add the XForm widget to a stateful widget
  • Add XFields as children, each page wrapped in a ListView.
  • Add a submit function to handle the data on submission.

Example

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

void main() => runApp(MaterialApp(
      home: Scaffold(
          appBar: AppBar(title: const Text('XForm')), body: FormWidget()),
    ));

class FormWidget extends StatefulWidget {
  @override
  _FormWidgetState createState() => _FormWidgetState();
}

class _FormWidgetState extends State<FormWidget> {
  _submit(formData) {
    print(formData);
  }
  
  @override
  Widget build(BuildContext context) {  
    return Padding(
      padding: const EdgeInsets.all(8.0),
      child: XForm(submit: _submit, children: <Widget>[
        ListView(children: <Widget>[
          XTextField(
            name: "name",
            label: "Name",
            required: true,
          ),
          XTextField(
            name: "email",
            label: "Email Address",
            type: FieldType.email,
          ),
        ]),
      ]),
    );
  }
}

About

A Flutter plugin for easy form building

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages