Flutter UI组件插件empathetech_flutter_ui的使用

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

Flutter UI组件插件empathetech_flutter_ui的使用

Empathetech Flutter UI

Build apps for anyone

当使用Empathetech Flutter UI构建应用时,你可以确保你的应用在各个方面都具有良好的可访问性。以下是该插件的一些主要特点:

  • 平台可用性:由于Flutter的支持,EFUI可以在Android、iOS、Linux、MacOS、Windows和Web上全平台运行。
  • 响应式设计:使应用能够适应不同尺寸的屏幕。
  • 屏幕阅读器支持:通过TalkBack和VoiceOver等工具进行了手动验证。
  • 用户定制化:允许用户控制应用的主题,以满足他们的需求。
  • 国际化:所有外部文本都已翻译成西班牙语和法语,并且有无限未来翻译的基础设施。

目录


安装

在你的项目的根目录下运行以下命令:

flutter pub add empathetech_flutter_ui

然后在任何使用EFUI库的文件中添加以下导入语句:

import 'package:empathetech_flutter_ui/empathetech_flutter_ui.dart';

使用

TL;DR
  • 必需

    1. void main()中初始化EzConfig
    2. 使用EzAppProvider构建一个PlatformApp(或者在现有provider中使用ezThemeData,或者使用EzConfig来构建一个自定义的ThemeData
  • 推荐

    1. 复制示例项目中的设置沙箱到你的项目
    2. 享受吧!

设置

步骤 1
初始化 EzConfig in void main()
void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  final SharedPreferences prefs = await SharedPreferences.getInstance();

  EzConfig.init(
    // 路径到应用使用的任何本地存储的图片
    assetPaths: {},

    preferences: prefs,

    // 你的品牌颜色,自定义样式等
    defaults: empathetechConfig, // 可选的起始配置
  );

  SystemChrome.setPreferredOrientations([
    DeviceOrientation.portraitUp,
    DeviceOrientation.portraitDown,
    DeviceOrientation.landscapeLeft,
    DeviceOrientation.landscapeRight,
  ]);

  runApp(const YourApp());
}

如何工作

EzConfig 收集并存储应用的主题数据,将你的customDefaults与用户的保存偏好合并。

一旦收集完毕,EzConfig 将数据存储在一个单例实例中以便高效访问。EzConfig 提供了一系列的getter和setter方法来安全地与主题数据交互。

步骤 2
使用 EzAppProvider 构建一个 PlatformApp
class YourApp extends StatelessWidget {
  const YourApp({super.key});

  @override
  Widget build(BuildContext context) {
    return EzAppProvider(
      app: PlatformApp.router(
        debugShowCheckedModeBanner: false,

        // 语言处理
        localizationsDelegates: {
          LocaleNamesLocalizationsDelegate(),
          ...EFUILang.localizationsDelegates,
          YourAppFeedbackLocalizationsDelegate,
        },

        // 支持的语言
        supportedLocales: EFUILang.supportedLocales,

        // 当前语言
        locale: EzConfig.getLocale(),

        title: yourAppTitle,
        routerConfig: yourAppRouter,
      ),
    );
  }
}

如何工作

EzAppProvider 是一个PlatformProvider包装器,默认使用ezThemeData

ezThemeData 设置动态颜色方案和文本主题,并默认将一些触摸点更新为更高的对比度。

你也可以使用自己的应用/提供商与ezThemeData达到相同的效果。或者,你可以完全使用EzConfig数据构建自己的自定义基础主题。

步骤 3
复制示例项目的设置沙箱到你的项目

示例应用被设计为你的应用设置的即插即用解决方案。复制/粘贴所有屏幕文件,并在你的应用路由中创建路径。

例如,使用GoRouter的设置…

/// 基于路径的路由器,适用于网络应用
final GoRouter _yourAppRouter = GoRouter(
  initialLocation: homePath,
  routes: [
    GoRoute(
      path: homePath,
      builder: (BuildContext context, GoRouterState state) {
        return const HomeScreen();
      },
      routes: [
        /// ...所有预存在的或即将存在的路由
        GoRoute(
          path: settingsRoute,
          builder: (BuildContext context, GoRouterState state) {
            return const SettingsHomeScreen();
          },
          routes: [
            GoRoute(
              path: textSettingsPath,
              builder: (BuildContext context, GoRouterState state) {
                return const TextSettingsScreen();
              },
            ),
            GoRoute(
              path: layoutSettingsPath,
              builder: (BuildContext context, GoRouterState state) {
                return const LayoutSettingsScreen();
              },
            ),
            GoRoute(
              path: colorSettingsPath,
              builder: (BuildContext context, GoRouterState state) {
                return const ColorSettingsScreen();
              },
            ),
            GoRoute(
              path: imageSettingsPath,
              builder: (BuildContext context, GoRouterState state) {
                return const ImageSettingsScreen();
              },
            ),
          ],
        ),
      ],
    ),
  ],
);

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

1 回复

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


当然,empathetech_flutter_ui 是一个 Flutter 插件,用于快速构建现代化的用户界面。虽然具体的插件细节和 API 可能会有所变化,但通常这类插件会提供一系列预定义的 UI 组件,使得开发者能够更容易地实现一致的 UI 设计。

以下是一个简单的代码示例,展示如何在 Flutter 应用中使用 empathetech_flutter_ui 插件。请注意,实际使用时需要确保已正确安装并引入了该插件。

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

dependencies:
  flutter:
    sdk: flutter
  empathetech_flutter_ui: ^latest_version  # 替换为最新版本号

然后,运行 flutter pub get 以获取依赖项。

接下来,在你的 Dart 文件中导入该插件并使用其提供的组件。以下是一个示例代码,展示了如何使用 empathetech_flutter_ui 中的某些组件:

import 'package:flutter/material.dart';
import 'package:empathetech_flutter_ui/empathetech_flutter_ui.dart'; // 假设插件提供了这样的导入路径

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

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

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('EmpatheTech Flutter UI Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            // 假设插件提供了一个名为 CustomButton 的按钮组件
            CustomButton(
              onPressed: () {
                // 按钮点击事件处理
                ScaffoldMessenger.of(context).showSnackBar(
                  SnackBar(content: Text('Button Pressed!')),
                );
              },
              child: Text('Press Me'),
            ),
            
            // 假设插件提供了一个名为 CustomTextField 的文本输入框组件
            SizedBox(height: 20),
            CustomTextField(
              hintText: 'Enter some text',
              onChanged: (String value) {
                // 文本变化时的事件处理
                print('Text changed to: $value');
              },
            ),
            
            // 假设插件提供了一个名为 CustomCard 的卡片组件
            SizedBox(height: 20),
            CustomCard(
              title: 'Card Title',
              content: 'This is some content inside the card.',
            ),
          ],
        ),
      ),
    );
  }
}

// 注意:这里的 CustomButton, CustomTextField, CustomCard 是假设的组件名。
// 实际使用时,请参考 empathetech_flutter_ui 插件的文档来了解具体可用的组件及其使用方法。

在上面的示例中,我们创建了一个简单的 Flutter 应用,其中包括三个假设的 UI 组件:CustomButtonCustomTextFieldCustomCard。这些组件名是基于假设的,因为具体的组件名和用法需要参考 empathetech_flutter_ui 插件的官方文档。

实际使用时,请确保查阅该插件的 README 文件或官方文档,以了解如何正确导入和使用其提供的 UI 组件。

回到顶部