qu_form 0.0.1
qu_form: ^0.0.1 copied to clipboard
A form package project.
example/lib/main.dart
import 'package:example/json.dart';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:qu_form/Model/QUDynamicFormSettingModel.dart';
import 'package:qu_form/QUForm/Components/QUButton.dart';
import 'package:qu_form/qu_form.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
MyApp({Key? key}) : super(key: key);
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final GlobalKey<QUFormState> _formKey = GlobalKey();
bool _isMount = true;
@override
void initState() {
super.initState();
_setForm();
_setFormValue();
}
@override
void setState(fn) {
if (_isMount) {
super.setState(fn);
}
}
@override
void dispose() {
super.dispose();
_isMount = false;
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'form example',
locale: Locale('zh', 'CN'),
// 国际化
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: [
const Locale('en', 'US'), // 美国英语
const Locale('zh', 'CN'), // 中文简体
//其它Locales
],
home: Scaffold(
resizeToAvoidBottomInset: true,
body: Container(
padding: EdgeInsets.all(20),
child: ListView(
children: [
QUButton(text: '提交', onPressed: _onPressed),
QUForm(
key: _formKey,
mainColor: Color(0xff598FE8),
),
],
),
),
),
);
}
// 模拟接口返回 设置表单
_setForm() {
Future.delayed(Duration(milliseconds: 1000), () {
try {
final List<QUDynamicFormSettingModel> formSetting =
(data['dynamicFormSetting'] as List)
.map((item) => QUDynamicFormSettingModel.fromJson(item))
.toList();
_formKey.currentState!.setFormSetting(formSetting);
} catch (e) {
print(e);
}
});
}
// 模拟接口设置表单数据
_setFormValue() {
Future.delayed(Duration(milliseconds: 2000), () {
try {
_formKey.currentState!.setFormValue(
data['dynamicFormValue'] as Map<String, Map<String, dynamic>>);
} catch (e) {
print(e);
}
});
}
_onPressed() {
final form = _formKey.currentState!;
// 验证表单
final isValidate = form.validate();
if (isValidate) {
final formValue = form.save();
print(formValue);
}
}
}