Flutter表单构建插件bform的使用

发布于 1周前 作者 yibo5220 来自 Flutter

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,
              ),
            ],
          ),
        ),
      ),
    );
  }
}

在这个示例中:

  1. BForm是表单的根组件,它接受一个GlobalKey<BFormState>用于表单验证和状态管理。
  2. BTextFormField是文本输入字段,它接受字段名(name)、标签(label)、是否隐藏文本(obscureText,用于密码输入)和验证器(validators)。
  3. BFormButton是一个按钮组件,用于提交表单。它的onPressed回调会在表单验证通过后执行。

通过这种方式,你可以快速构建并验证表单,而无需手动处理每个字段的验证逻辑。bform插件还提供了更多高级功能,如自定义验证器、表单重置等,你可以根据需要查阅其文档进行更深入的使用。

回到顶部