Flutter表单构建插件bform的使用
Flutter表单构建插件bform的使用
Bform
用于帮助你创建漂亮的表单组件的插件。
支持平台 | Android | iOS | Linux | macOS | Web | Windows |
---|---|---|---|---|---|---|
支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
特性
- 应用栏(appbar)
- 底部栏(footer)
- 表单组件
- 表格组件
开始使用
步骤 2: 在你的pubspec.yaml
文件中添加bform作为依赖项:
dependencies:
bform:
步骤 3: 在dart文件中导入包:
import 'package:bform/bform.dart';
使用示例
以下是一个完整的示例,展示了如何使用bform
插件创建一个包含文本输入框、复选框、单选按钮、按钮和表格的表单。
import 'package:bform/bform.dart';
import 'package:flutter/material.dart';
import 'borm_obj_impl.dart';
void main() {
runApp(
MaterialApp(
home: Scaffold(
appBar: BformAppbar(
title: 'Bform Example',
color: Colors.blueGrey,
icon: Icons.menu,
),
body: SafeArea(child: MyApp()),
),
),
);
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
bool checkActive = false;
[@override](/user/override)
Widget build(BuildContext context) {
return SingleChildScrollView(
padding: const EdgeInsets.all(10.0),
child: Column(
children: [
BformForm(
height: 150,
padding: 8,
color: Colors.grey,
width: MediaQuery.of(context).size.width - 20,
border: Border.all(color: Colors.red),
child: Column(
children: [
const BformTextInput(
label: '输入示例',
hintText: '提示文字示例',
),
const SizedBox(height: 30),
BformCheckbox(
initialState: checkActive,
label: '复选框',
onChange: (value) {
checkActive = value;
},
),
const SizedBox(height: 30),
BformGroupRadio(
label: '选择标题',
listItems: const [
BformObjImpl(1),
BformObjImpl(2),
BformObjImpl(3),
],
item: const BformObjImpl(1),
onChange: (_) {},
color: Colors.orange,
),
const SizedBox(height: 30),
BformDivider(),
const SizedBox(height: 30),
Align(
alignment: Alignment.centerRight,
child: BformButton(
onPressed: () {
setState(() {
checkActive = !checkActive;
});
},
icon: Icons.notifications,
fontSize: 16,
colors: [Colors.green, Colors.yellow, Colors.red],
style: BformButtonStyle.highlighted,
label: ('示例按钮'),
),
),
],
),
),
const SizedBox(height: 30),
BformDivider(),
const SizedBox(height: 30),
BformTableText(
titles: const ['标题1', '标题2'],
actionButtons: const [
Icon(Icons.add),
Icon(Icons.delete),
Icon(Icons.edit),
],
listElements: [
['元素1-1', '元素1-2'],
['元素2-1', '元素2-2'],
['元素3-1', '元素3-2'],
],
),
],
),
);
}
}
更多关于Flutter表单构建插件bform的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter表单构建插件bform的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中使用bform
插件来构建表单的一个示例。bform
是一个用于简化表单构建的Flutter包,它通过提供预定义的表单字段和验证功能来加速开发过程。
首先,确保你已经在pubspec.yaml
文件中添加了bform
依赖:
dependencies:
flutter:
sdk: flutter
bform: ^最新版本号 # 请替换为实际发布的最新版本号
然后,运行flutter pub get
来安装依赖。
接下来,我们来看一个具体的代码示例,展示如何使用bform
来构建一个包含文本输入、密码输入和提交按钮的简单登录表单。
import 'package:flutter/material.dart';
import 'package:bform/bform.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter bform Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: LoginForm(),
);
}
}
class LoginForm extends StatefulWidget {
@override
_LoginFormState createState() => _LoginFormState();
}
class _LoginFormState extends State<LoginForm> {
final _formKey = GlobalKey<BFormState>();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Login Form'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: BForm(
key: _formKey,
child: Column(
children: [
BTextFormField(
name: 'email',
label: 'Email',
validators: [
BValidators.required(errorText: 'Email is required'),
BValidators.email(errorText: 'Invalid email format'),
],
),
SizedBox(height: 16),
BTextFormField(
name: 'password',
label: 'Password',
obscureText: true,
validators: [
BValidators.required(errorText: 'Password is required'),
],
),
SizedBox(height: 24),
BFormButton(
onPressed: () async {
if (_formKey.currentState!.validate()) {
// 如果验证通过,可以在这里处理表单提交
final formValues = _formKey.currentState!.getValues();
print('Form Data: $formValues');
// 例如,可以执行登录操作
// await login(email: formValues['email'], password: formValues['password']);
}
},
text: 'Login',
color: Colors.blue,
),
],
),
),
),
);
}
}
在这个示例中:
BForm
是表单的根组件,它接受一个GlobalKey<BFormState>
用于表单验证和状态管理。BTextFormField
是文本输入字段,它接受字段名(name
)、标签(label
)、是否隐藏文本(obscureText
,用于密码输入)和验证器(validators
)。BFormButton
是一个按钮组件,用于提交表单。它的onPressed
回调会在表单验证通过后执行。
通过这种方式,你可以快速构建并验证表单,而无需手动处理每个字段的验证逻辑。bform
插件还提供了更多高级功能,如自定义验证器、表单重置等,你可以根据需要查阅其文档进行更深入的使用。