Flutter自定义组件库插件basf_flutter_components的使用

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

Flutter自定义组件库插件 basf_flutter_components 的使用

介绍

basf_flutter_components 是一个由BASF-Mobile-Solutions开发的Flutter组件库,它提供了丰富的UI组件、主题、动画和扩展功能。本文将详细介绍如何在你的Flutter项目中使用这个库。

Logo

BASF Logo

相关链接

安装

首先,在你的 pubspec.yaml 文件中添加 basf_flutter_components 依赖:

dependencies:
  basf_flutter_components: ^latest_version

然后,在 .dart 文件中导入该库:

import 'package:basf_flutter_components/basf_flutter_components.dart';

使用示例

以下是一个简单的示例应用,展示了如何集成并使用 basf_flutter_components 库中的组件。

// example/lib/main.dart
import 'package:basf_flutter_components/basf_flutter_components.dart';
import 'package:flutter/material.dart';

void main() => runApp(const ExampleApp());

class ExampleApp extends StatelessWidget {
  const ExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'BASF Components',
      theme: BasfThemes.lightMainTheme(),
      home: const OverviewScreen(),
    );
  }
}

class OverviewScreen extends StatelessWidget {
  const OverviewScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Overview')),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            // 示例:BasfTextButton
            BasfTextButton.contained(
              text: 'Styled Button',
              onPressed: () {
                AppSnackBar.info(message: 'Button pressed').show(context);
              },
            ),
            const SizedBox(height: 20),
            // 示例:BasfTextField
            BasfTextField(
              decoration: const InputDecoration(hintText: 'Enabled'),
              controller: TextEditingController(),
            ),
            const SizedBox(height: 20),
            // 示例:BasfOutlinedButton
            BasfOutlinedButton(
              text: 'Outlined Buttons',
              onPressed: () {},
            ),
            const SizedBox(height: 20),
            // 示例:SliderButton
            SliderButton(
              text: 'Basf Slider button',
              onConfirmation: () {},
            ),
          ],
        ),
      ),
    );
  }
}

组件概览

主题 (Theme)

Themes

theme: BasfThemes.lightMainTheme(BasfThemeType.darkBlue),

Themes

Colors

BasfColors.red,

Colors

Fonts

Theme.of(context).textTheme.headline1!,

Fonts

小部件 (Widgets)

AppSnackBar

AppSnackBar.info(message: 'Button pressed').show(context);

Snackbar

BasfTextButton

BasfTextButton.contained(
  text: 'Styled Button',
  onPressed: () => _onPressed(context),
  style: TextButton.styleFrom(
    shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(0)),
    backgroundColor: BasfColors.red,
  ),
),

TextButtons

OutlinedButton

BasfOutlinedButton(
  text: 'Outlined Buttons',
  onPressed: () { /* --- */ },
),

OutlinedButtons

SliderButton

SliderButton(
  text: 'Basf Slider button',
  onConfirmation: () {},
),

SliderButton

Dialogs

showDialog<void>(
  context: context,
  builder: (context) {
    return const BasfAlertDialog(
      title: 'Title',
      description: 'Body Text',
      confirmText: 'Confirm Text',
      dismissText: 'Dismiss Text',
    );
  },
);

AlertDialog

TextFields

BasfTextField(
  decoration: const InputDecoration(hintText: 'Enabled'),
  controller: _enabledController,
),

TextFields

Dropdown

BasfDropDownInput(
  controller: TextEditingController(),
  values: const ['Option1', 'Option2', 'Option3'],
),

Dropdown

Radio

RadioOptions(
  title: 'BASF Radio',
  selectedValue: selectedValue,
  labelGenerator: (o) => '$o',
  values: values,
  onSelected: (value) {
    setState(() => selectedValue = value.toString());
  },
),

Radio

CheckBox

BasfCheckbox(
  value: selected,
  onChanged: change,
),

CheckBox

Icons

Icon(BasfIcons.add),

Icons

动画 (Animations)

Fade

Fade(
  visible: value,
  child: Text('Sup'),
),

Fade

扩展 (Extensions)

ThemeData on BuildContext

final theme = context.theme;

Joined Widgets

[
  const Text('CARLOS'),
  const Text('MOBILE SOLUTIONS'),
].joinWithSeparator();

Spaced Widgets

[
  const Text('CARLOS'),
  const Text('MOBILE SOLUTIONS'),
].spaced();

Log on Object

final testString = 'My String';
testString.log();

Detailed Where on Map<K, V>

<Map<String, int>>{'John': 20, 'Mary': 21, 'Peter': 20}
  ..where((key, value) => key.length > 4 && value >= 20)
  ..whereKey((key) => key.length < 5)
  ..whereValue((value) => value.isEven);

Capitalization on String

'carlos g'.toCapitalized(); // Carlos g
'carlos g'.toTitleCase(); // Carlos G

以上就是关于 basf_flutter_components 插件的基本介绍和使用方法。你可以根据需要选择合适的组件和功能来丰富你的Flutter应用。更多详细信息请参考官方文档或示例项目。


更多关于Flutter自定义组件库插件basf_flutter_components的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter自定义组件库插件basf_flutter_components的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中集成和使用自定义组件库插件 basf_flutter_components 的示例代码。假设该插件已经发布到pub.dev,并且你已经将其添加到了你的 pubspec.yaml 文件中。

1. 添加依赖

首先,确保在 pubspec.yaml 文件中添加 basf_flutter_components 依赖:

dependencies:
  flutter:
    sdk: flutter
  basf_flutter_components: ^latest_version  # 替换为实际最新版本号

然后在项目根目录下运行 flutter pub get 来获取依赖。

2. 导入组件库

在你的 Dart 文件中导入 basf_flutter_components

import 'package:basf_flutter_components/basf_flutter_components.dart';

3. 使用自定义组件

假设 basf_flutter_components 提供了一个自定义按钮组件 BasfButton,你可以这样使用它:

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Basf Flutter Components Demo'),
      ),
      body: Center(
        child: BasfButton(
          onPressed: () {
            print('Button pressed!');
          },
          child: Text('Custom Button'),
          // 假设 BasfButton 有以下可选参数
          color: Colors.green,
          textStyle: TextStyle(fontSize: 20, color: Colors.white),
        ),
      ),
    );
  }
}

4. 自定义组件的样式和行为

如果 BasfButton 组件提供了更多的自定义选项,比如自定义颜色、字体大小、形状等,你可以根据文档或源代码进行调整。例如:

BasfButton(
  onPressed: () {
    print('Button pressed with custom styles!');
  },
  child: Text('Styled Custom Button'),
  color: Colors.purple,
  textStyle: TextStyle(fontSize: 24, fontWeight: FontWeight.bold, color: Colors.yellow),
  shape: RoundedRectangleBorder(
    borderRadius: BorderRadius.circular(18.0),
  ),
  padding: EdgeInsets.symmetric(horizontal: 24, vertical: 12),
)

5. 运行项目

确保所有代码正确无误后,在项目根目录下运行 flutter run 来启动应用并查看自定义组件的效果。

注意

  • 由于 basf_flutter_components 是一个假设的插件名称,具体的组件名称、参数和方法可能会有所不同。因此,请务必参考该插件的官方文档或源代码以获取准确的信息。
  • 如果该插件没有发布到pub.dev,你可能需要从本地路径或Git仓库中引入依赖。

希望这个示例能够帮助你开始使用 basf_flutter_components 自定义组件库插件!

回到顶部