Flutter基础功能库插件base_lib_pub的使用
Flutter基础功能库插件base_lib_pub的使用
描述
这是一个基于Getx的基础库,旨在方便快捷地构建应用程序。通过添加这个项目依赖,可以快速集成一般应用所需的基本功能。
这个项目的初衷是为了建立一个可以直接引用到多个项目的基架库。早期,base_lib文件夹在各个项目之间直接复制粘贴。后来,为了便于维护和同步更新,我们开始寻找一个通用的解决方案,因此这个项目应运而生。
希望有人能够在这个项目中获得一些帮助。
特性
- 通用项目结构;
- 通用页面:
- 图片预览(支持文本预览);
- webView(无单顶支持);
- 通用工具:
- AES加密解密;
- 网络请求及请求日志;
- 系统分享;
- 崩溃日志;
- 文件操作;
- 图片选择器、照片选择器和图片压缩;
- 统一的日志管理;
- 权限请求和验证;
- 本地数据存储;
- 设备信息查询;
- 应用程序信息查询;
- 第三方应用调整;
- 其他通用工具;
- 国际化基础(中文和英文);
- 通用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修改,支持双击回调);
- common_ui:
- 通用导航路由:
- Nav导航工具;
- 继承BaseRoutesClass统一获取路由Routes;
- 通用扩展:
- 日志输出;
- 日期格式化;
- 滚动控制器;
- getx: MyGet扩展GetInterface;
- 其他:
- GetxAnimationControllerMixin获取AnimationController;
- GetTicker获取TickerProvider;
- …
开始使用
- 个人开源,能力有限,轻喷;
- 大多数时间,项目仅在个别私有Android设备上调试;
- 如果有任何兼容性问题,请发送邮件至420048248@qq.com或使用底部联系方式反馈;
- 基于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
更多关于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'),
),
],
),
),
);
}
}
注意事项
- 插件文档:实际使用时,请查阅
base_lib_pub
的官方文档或README文件,以了解所有可用的方法和功能。 - 版本兼容性:确保你使用的插件版本与你的Flutter SDK版本兼容。
- 错误处理:在实际应用中,添加适当的错误处理逻辑以处理可能出现的异常情况。
由于base_lib_pub
是一个假设的库名,上述代码中的BaseLibPub.showToast
和BaseLibPub.fetchData
方法名也是假设的。在实际使用中,你需要根据base_lib_pub
库的实际API进行调用。