Flutter基础功能库插件base_lib_pub的使用

Flutter基础功能库插件base_lib_pub的使用

描述

这是一个基于Getx的基础库,旨在方便快捷地构建应用程序。通过添加这个项目依赖,可以快速集成一般应用所需的基本功能。

这个项目的初衷是为了建立一个可以直接引用到多个项目的基架库。早期,base_lib文件夹在各个项目之间直接复制粘贴。后来,为了便于维护和同步更新,我们开始寻找一个通用的解决方案,因此这个项目应运而生。

希望有人能够在这个项目中获得一些帮助。

特性

  1. 通用项目结构
  2. 通用页面
    • 图片预览(支持文本预览);
    • webView(无单顶支持);
  3. 通用工具
    • AES加密解密;
    • 网络请求及请求日志;
    • 系统分享;
    • 崩溃日志;
    • 文件操作;
    • 图片选择器、照片选择器和图片压缩;
    • 统一的日志管理;
    • 权限请求和验证;
    • 本地数据存储;
    • 设备信息查询;
    • 应用程序信息查询;
    • 第三方应用调整;
    • 其他通用工具;
  4. 国际化基础(中文和英文)
  5. 通用UI
    • common_ui:
      • mWillPopScope;
      • mRoot;
      • mAppBar;
      • mText;
      • mTextField;
      • mBorder、mLine、mDivider;
      • mLoadImageView;
      • mFadeInView;
      • mAvatar;
      • mSimpleBoxDecoration;
      • mInkView;
      • mProgressIndicator;
      • mOverSizeScrollView;
      • mScrollConfig;
    • Cartridge: 支持多个Cartridge自定义关闭顺序和动画;
      • mShowTip;
      • mShowDialog;
    • 通用showLoading、toast、notify;
    • 常用颜色和尺寸(可能会在后期删除);
    • 通用列表Footer;
    • KeepAliveWrapper;
    • MySalomonBottomBar(基于SalomonBottomBar修改,支持双击回调);
  6. 通用导航路由
    • Nav导航工具;
    • 继承BaseRoutesClass统一获取路由Routes;
  7. 通用扩展
    • 日志输出;
    • 日期格式化;
    • 滚动控制器;
    • getx: MyGet扩展GetInterface;
  8. 其他
    • GetxAnimationControllerMixin获取AnimationController;
    • GetTicker获取TickerProvider;

开始使用

  1. 个人开源,能力有限,轻喷;
  2. 大多数时间,项目仅在个别私有Android设备上调试;
  3. 如果有任何兼容性问题,请发送邮件至420048248@qq.com或使用底部联系方式反馈;
  4. 基于Flutter 3.19.2,Dart 3.3.0;

使用方法

example目录下的lib/page/home/view.dart文件展示了如何使用这个库。

入口文件示例

import 'package:base_lib_pub/base_lib_pub.dart';
import 'package:base_lib_pub_example/route/routes.dart';
import 'package:base_lib_pub_example/translation/translation.dart';
import 'package:flutter/material.dart';

void main() {
  runMyApp(
    const MyApp(),
    enableLog: true,
    unPopRoutes: [Routes.init, Routes.home],
    initWeChat: true,
    beforeRun: () async {
      /// 初始化网络请求
      initGlobalDio(ignoreCertificate: true);
    },
  );
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return baseApp(
      // 路由
      initialRoute: Routes.init,
      getPages: Routes.getPages(),
      // 国际化配置
      locale: MyTrans.locale,
      fallbackLocale: MyTrans.fallbackLocale,
      translations: MyTrans(),
      // botToast
      builder: toastBuilder,
      navigatorObservers: [toastObserver],
    );
  }
}

更多关于Flutter基础功能库插件base_lib_pub的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

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


当然,以下是一个关于如何在Flutter项目中集成和使用名为base_lib_pub(这里假设这是一个实际存在的Flutter基础功能库插件,虽然实际上可能并不存在这样一个具体命名的库,但我会根据常见的Flutter插件使用方式给出一个示例)的示例代码。

1. 添加依赖

首先,你需要在你的Flutter项目的pubspec.yaml文件中添加base_lib_pub作为依赖。

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

2. 获取依赖

在命令行中运行以下命令来获取依赖:

flutter pub get

3. 导入并使用插件

在你的Flutter应用的Dart文件中导入base_lib_pub库,并开始使用它提供的功能。以下是一个假设base_lib_pub库提供了一些基础功能(如显示Toast消息、网络请求等)的示例代码。

import 'package:flutter/material.dart';
import 'package:base_lib_pub/base_lib_pub.dart';  // 假设这是插件的导入路径

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

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

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Base Lib Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              onPressed: () {
                // 假设base_lib_pub提供了一个showToast方法
                BaseLibPub.showToast('Hello, this is a toast message!');
              },
              child: Text('Show Toast'),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () async {
                // 假设base_lib_pub提供了一个网络请求方法,如fetchData
                try {
                  var data = await BaseLibPub.fetchData('https://api.example.com/data');
                  ScaffoldMessenger.of(context).showSnackBar(
                    SnackBar(content: Text('Data fetched: $data')),
                  );
                } catch (e) {
                  ScaffoldMessenger.of(context).showSnackBar(
                    SnackBar(content: Text('Error fetching data: $e')),
                  );
                }
              },
              child: Text('Fetch Data'),
            ),
          ],
        ),
      ),
    );
  }
}

注意事项

  1. 插件文档:实际使用时,请查阅base_lib_pub的官方文档或README文件,以了解所有可用的方法和功能。
  2. 版本兼容性:确保你使用的插件版本与你的Flutter SDK版本兼容。
  3. 错误处理:在实际应用中,添加适当的错误处理逻辑以处理可能出现的异常情况。

由于base_lib_pub是一个假设的库名,上述代码中的BaseLibPub.showToastBaseLibPub.fetchData方法名也是假设的。在实际使用中,你需要根据base_lib_pub库的实际API进行调用。

回到顶部