flutter_form_builder 9.6.0 flutter_form_builder: ^9.6.0 copied to clipboard
This package helps in creation of forms in Flutter by removing the boilerplate code, reusing validation, react to changes, and collect final user input.
import 'package:example/sources/conditional_fields.dart';
import 'package:example/sources/decorated_radio_checkbox.dart';
import 'package:example/sources/dynamic_fields.dart';
import 'package:example/sources/grouped_radio_checkbox.dart';
import 'package:example/sources/related_fields.dart';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:form_builder_validators/form_builder_validators.dart';
import 'code_page.dart';
import 'sources/complete_form.dart';
import 'sources/custom_fields.dart';
import 'sources/signup_form.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter FormBuilder Demo',
debugShowCheckedModeBanner: false,
localizationsDelegates: const [
FormBuilderLocalizations.delegate,
...GlobalMaterialLocalizations.delegates,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: FormBuilderLocalizations.supportedLocales,
theme: ThemeData.light().copyWith(
appBarTheme: const AppBarTheme()
.copyWith(backgroundColor: Colors.blue.shade200)),
home: const _HomePage(),
);
}
}
class _HomePage extends StatelessWidget {
const _HomePage();
@override
Widget build(BuildContext context) {
return CodePage(
title: 'Flutter Form Builder',
child: ListView(
children: <Widget>[
ListTile(
title: const Text('Complete Form'),
trailing: const Icon(Icons.arrow_right_sharp),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) {
return const CodePage(
title: 'Complete Form',
child: CompleteForm(),
);
},
),
);
},
),
const Divider(),
ListTile(
title: const Text('Custom Fields'),
trailing: const Icon(Icons.arrow_right_sharp),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) {
return const CodePage(
title: 'Custom Fields',
child: CustomFields(),
);
},
),
);
},
),
const Divider(),
ListTile(
title: const Text('Signup Form'),
trailing: const Icon(Icons.arrow_right_sharp),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) {
return const CodePage(
title: 'Signup Form',
child: SignupForm(),
);
},
),
);
},
),
const Divider(),
ListTile(
title: const Text('Dynamic Form'),
trailing: const Icon(Icons.arrow_right_sharp),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) {
return const CodePage(
title: 'Dynamic Form',
child: DynamicFields(),
);
},
),
);
},
),
const Divider(),
ListTile(
title: const Text('Conditional Form'),
trailing: const Icon(Icons.arrow_right_sharp),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) {
return const CodePage(
title: 'Conditional Form',
child: ConditionalFields(),
);
},
),
);
},
),
const Divider(),
ListTile(
title: const Text('Related Fields'),
trailing: const Icon(Icons.arrow_right_sharp),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) {
return const CodePage(
title: 'Related Fields',
child: RelatedFields(),
);
},
),
);
},
),
const Divider(),
ListTile(
title: const Text('Radio Checkbox itemDecorator'),
trailing: const Icon(Icons.arrow_right_sharp),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) {
return const CodePage(
title: 'ItemDecorators',
child: DecoratedRadioCheckbox(),
);
},
),
);
},
),
const Divider(),
ListTile(
title: const Text('GroupedRadio and GroupedCheckbox Orientation'),
trailing: const Icon(Icons.arrow_right_sharp),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) {
return const CodePage(
title: 'GroupedRadio and GroupedCheckbox',
child: GroupedRadioCheckbox(),
);
},
),
);
},
),
],
),
);
}
}