Flutter UI组件库插件ducafe_ui_core的使用

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

Flutter UI组件库插件ducafe_ui_core的使用

简介

ducafe_ui_core 是一个Flutter UI核心库,提供了许多有用的扩展方法和实用类,简化了Flutter应用中的UI开发。本文将介绍如何安装和使用该库,并提供一些示例代码。

参考资料

主要功能

  1. 屏幕适配工具 (ScreenUtil)
  2. Widget扩展方法
  3. Context扩展方法
  4. String扩展方法
  5. List扩展方法
  6. Theme访问扩展方法
  7. 平台检测扩展方法
  8. UI实用类

安装

pubspec.yaml 文件中添加依赖:

dependencies:
  ducafe_ui_core: ^1.0.1

然后运行以下命令:

flutter pub get

使用示例

屏幕适配

在应用程序的根部初始化 ScreenUtil

import 'package:ducafe_ui_core/ducafe_ui_core.dart';

void main() {
  runApp(
    ScreenUtilInit(
      designSize: const Size(360, 690),
      builder: (context, child) {
        return MaterialApp(
          debugShowCheckedModeBanner: false,
          title: 'Flutter Demo',
          theme: ThemeData(
            primarySwatch: Colors.blue,
          ),
          home: child,
        );
      },
      child: const HomePage(),
    ),
  );
}

Widget 扩展

示例:

// 创建一个居中的文本Widget
final centeredText = Text('Hello, World!').center();

// 创建带有填充和阴影的卡片
final styledCard = Text('Card Content')
    .padding(all: 16)
    .card(elevation: 4)
    .boxShadow(blurRadius: 10);

// 创建一个可点击的按钮
final clickableButton = Text('Click me')
    .padding(all: 8)
    .inkWell(onTap: () => print('Button clicked!'));

// 创建一个带有动画效果的缩放Widget
final animatedWidget = Icon(Icons.star)
    .scale(all: 1.5)
    .animate(Duration(milliseconds: 300), Curves.easeInOut);

颜色扩展

示例:

context.colors.scheme

可用扩展:

  • primary: 主色调
  • primaryLight: 主色调的亮版本
  • primaryDark: 主色调的暗版本
  • canvas: 画布颜色
  • scaffoldBackground: Scaffold背景颜色
  • card: 卡片颜色
  • divider: 分割线颜色
  • focus: 聚焦颜色
  • hover: 悬停颜色
  • highlight: 高亮颜色
  • splash: 溅射颜色
  • unselectedWidget: 未选中部件颜色
  • disabled: 禁用状态颜色
  • secondaryHeader: 次级头部颜色
  • dialogBackground: 对话框背景颜色
  • indicator: 指示器颜色
  • hint: 提示文本颜色
  • scheme: 完整的颜色方案
  • shadow: 阴影颜色

屏幕尺寸信息

示例:

context.screenWidth

可用扩展:

  • screenWidth: 获取屏幕宽度
  • screenHeight: 获取屏幕高度
  • bottomBarHeight: 获取底部导航栏高度
  • statusBarHeight: 获取状态栏高度
  • textScaleFactor: 获取文本缩放因子
  • scaleWidth: 获取宽度缩放因子
  • scaleHeight: 获取高度缩放因子

示例Demo

下面是一个完整的示例程序,展示了如何使用 ducafe_ui_core 库的一些基本功能:

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

void main() {
  runApp(
    ScreenUtilInit(
      designSize: const Size(360, 690),
      builder: (context, child) {
        return MaterialApp(
          debugShowCheckedModeBanner: false,
          title: 'Flutter Demo',
          theme: ThemeData(
            primarySwatch: Colors.blue,
          ),
          home: MyHomePage(),
        );
      },
    ),
  );
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final screenWidth = context.screenWidth;
    final screenHeight = context.screenHeight;

    return Scaffold(
      appBar: AppBar(
        title: Text('ducafe_ui_core Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'ScreenWidth: $screenWidth',
              style: TextStyle(fontSize: 16),
            ),
            SizedBox(height: 20),
            Text(
              'ScreenHeight: $screenHeight',
              style: TextStyle(fontSize: 16),
            ),
            SizedBox(height: 40),
            Text('Hello, World!')
                .center()
                .padding(all: 16)
                .card(elevation: 4)
                .boxShadow(blurRadius: 10),
            SizedBox(height: 20),
            Text('Click me')
                .padding(all: 8)
                .inkWell(onTap: () => print('Button clicked!')),
          ],
        ),
      ),
    );
  }
}

这个示例展示了如何使用 ScreenUtil 初始化屏幕适配工具,并使用一些扩展方法创建居中、带阴影的文本以及可点击的按钮。你可以根据需要进一步扩展和修改这些示例。

其他扩展功能

除了上述功能外,ducafe_ui_core 还提供了很多其他扩展功能,例如:

  • Duration Extensions: 将数字转换为 Duration
  • Icon Extensions: 修改图标大小和颜色
  • ListWidget Extensions: 将列表转换为 ColumnRow
  • MediaQuery Extensions: 获取屏幕的各种尺寸信息
  • Navigator Extensions: 导航相关扩展方法
  • Number to EdgeInsets Extensions: 数字转换为 EdgeInsets
  • String Extensions: 字符串处理和转换
  • Text Extensions: 文本样式修改
  • Theme Extensions: 主题相关扩展方法

更多详细信息和示例请参考官方文档和源码。

注意事项

此文档总结了 ducafe_ui_core 库的主要功能和使用方法。您可以根据需要扩展或修改此文档。如果需要更详细的解释或有任何问题,请随时提问。


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

1 回复

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


当然,下面是一个关于如何使用Flutter UI组件库插件ducafe_ui_core的代码示例。假设你已经将ducafe_ui_core添加到你的pubspec.yaml文件中,并且已经运行了flutter pub get

1. 添加ducafe_ui_core到pubspec.yaml

首先,确保你的pubspec.yaml文件中包含了对ducafe_ui_core的依赖:

dependencies:
  flutter:
    sdk: flutter
  ducafe_ui_core: ^最新版本号

2. 导入ducafe_ui_core

在你的Dart文件中导入ducafe_ui_core

import 'package:ducafe_ui_core/ducafe_ui_core.dart';

3. 使用ducafe_ui_core组件

下面是一个使用ducafe_ui_core中一些UI组件的简单示例:

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

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

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

class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Ducafe UI Core Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            // 使用 DucafeButton
            DucafeButton(
              text: 'Click Me',
              onPressed: () {
                ScaffoldMessenger.of(context).showSnackBar(
                  SnackBar(content: Text('Button Clicked!')),
                );
              },
            ),
            SizedBox(height: 20),

            // 使用 DucafeTextField
            DucafeTextField(
              labelText: 'Enter Text',
              onChanged: (value) {
                print('Text changed to: $value');
              },
            ),
            SizedBox(height: 20),

            // 使用 DucafeAvatar
            DucafeAvatar(
              image: NetworkImage('https://via.placeholder.com/150'),
            ),
            SizedBox(height: 20),

            // 使用 DucafeCard
            DucafeCard(
              title: 'Card Title',
              description: 'This is a description of the card.',
              child: Center(
                child: Text('Card Content'),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

4. 运行应用

确保你的开发环境已经设置好,然后运行flutter run来启动你的应用。你应该能看到一个包含DucafeButtonDucafeTextFieldDucafeAvatarDucafeCard组件的简单界面。

注意事项

  • ducafe_ui_core的具体组件和API可能会随着版本更新而变化,请参考官方文档或GitHub仓库以获取最新信息。
  • 如果某些组件需要额外的配置或参数,请参考组件的具体文档或示例代码。

希望这个示例能帮助你开始使用ducafe_ui_core!如果有更多问题,欢迎继续提问。

回到顶部