Flutter实用工具集插件simple_utils_flutter的使用

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

Flutter实用工具集插件simple_utils_flutter的使用

在这个包中,你会获得在编写代码时需要的许多功能。

功能

在这个包中,我添加了简单的文本字段验证、基本的Firebase函数用于CRUD操作(包括图片和文档)、SharedPreferences的基本功能,还有一些列表、字符串的扩展等。

开始使用

最小SDK版本应为19。

使用方法

上传文件到Firebase存储

此功能将返回图像的下载URL。

FirebaseUtils.uploadImageToFirebase(folder: "folder-name", image: yourFile);

如果你希望使用FirebaseUtils,需要在manifest文件中添加以下行:

<activity
    android:name="com.yalantis.ucrop.UCropActivity"
    android:screenOrientation="portrait"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar" />

完整示例

以下是一个完整的示例Demo,展示了如何使用simple_utils_flutter插件来选择并裁剪图片。

示例代码

import 'dart:io';

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

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '简单实用工具Flutter',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  const HomePage({Key? key}) : super(key: key);

  [@override](/user/override)
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  File? imageFile;

  [@override](/user/override)
  Widget build(BuildContext context) {
    Size size = MediaQuery.of(context).size;
    return Scaffold(
      appBar: AppBar(
        title: const Text('示例'),
      ),
      body: SizedBox(
        width: size.width,
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            // 如果有选择的图片,则显示图片
            if (imageFile != null)
              SizedBox(
                width: size.width * .8,
                height: size.width * .8,
                child: Image.file(
                  imageFile!,
                  fit: BoxFit.cover,
                ),
              ),
            const SizedBox(
              height: 20,
            ),
            // 选择图片按钮
            ElevatedButton(
                onPressed: () async {
                  // 调用FilePickerUtils的pickCroppedImage方法来选择并裁剪图片
                  await FilePickerUtils()
                      .pickCroppedImage(
                          context: context,
                          color: Colors.blue,
                          name: "示例",
                          title: "选择图片")
                      .then((value) {
                    imageFile = value;
                    setState(() {});
                  });
                },
                child: const Text("选择图片")),
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


当然,下面是一个关于如何使用 simple_utils_flutter 插件的示例代码案例。simple_utils_flutter 是一个 Flutter 实用工具集插件,提供了多种便捷的功能。假设你已经在 pubspec.yaml 文件中添加了该依赖并运行了 flutter pub get

示例代码

首先,确保你已经在 pubspec.yaml 中添加了依赖:

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

然后,在你的 Dart 文件中,你可以这样使用 simple_utils_flutter 提供的功能。以下是一些常用功能的示例:

1. 字符串工具

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('simple_utils_flutter 示例'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                '首字母大写: ${StringUtils.capitalize("hello world")}',
                style: TextStyle(fontSize: 20),
              ),
              Text(
                '反转字符串: ${StringUtils.reverse("hello world")}',
                style: TextStyle(fontSize: 20),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

2. 日期工具

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

class DateUtilsExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    DateTime now = DateTime.now();
    
    return Scaffold(
      appBar: AppBar(
        title: Text('日期工具示例'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              '当前日期格式化: ${DateUtils.formatDate(now, "yyyy-MM-dd HH:mm:ss")}',
              style: TextStyle(fontSize: 20),
            ),
            Text(
              '是否为闰年: ${DateUtils.isLeapYear(now.year)}',
              style: TextStyle(fontSize: 20),
            ),
          ],
        ),
      ),
    );
  }
}

3. 网络工具

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

class NetworkUtilsExample extends StatefulWidget {
  @override
  _NetworkUtilsExampleState createState() => _NetworkUtilsExampleState();
}

class _NetworkUtilsExampleState extends State<NetworkUtilsExample> {
  String result = '';

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('网络工具示例'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              onPressed: () async {
                String response = await NetworkUtils.get(
                  url: 'https://api.example.com/data', // 替换为有效的URL
                );
                setState(() {
                  result = response;
                });
              },
              child: Text('发起GET请求'),
            ),
            Text(
              '响应结果: $result',
              style: TextStyle(fontSize: 20),
            ),
          ],
        ),
      ),
    );
  }
}

注意事项

  1. 权限:某些功能(如网络请求)可能需要额外的权限配置,尤其是在 Android 和 iOS 上。
  2. 错误处理:在实际应用中,务必添加错误处理逻辑,尤其是在网络请求等异步操作中。
  3. 文档:建议查阅 simple_utils_flutter 的官方文档,以获取更多功能和详细信息。

通过这些示例代码,你可以看到 simple_utils_flutter 插件在 Flutter 应用中的一些常见用法。希望这对你有所帮助!

回到顶部