Flutter基础功能集成插件tecfy_basic_package的使用
Flutter基础功能集成插件tecfy_basic_package的使用
Tecfy Core For Mobile Client Projects
此插件仅供内部使用,您可以自由地在您的风险下使用它!
支持平台:
- Android
- iOS
- Windows
- Web
接口/抽象类:
- Base Controller
- Base Model
服务:
- API Service
- Config Server
- ImageService
- Notification Service
- Theme Service
组件:
- 带加载动画的按钮
- 复选框
- 多选下拉菜单
- 网络图片
- 搜索框
- 文本字段
- 文本标签
使用TecfyController
实现MVC模式时,您需要在main.dart
中应用以下内容:
import 'package:lifecycle/lifecycle.dart';
return MaterialApp(
navigatorObservers: [defaultLifecycleObserver],
);
使用MVC模式的步骤:
- 创建一个继承自
TecfyController
的控制器 - 创建一个继承自
BaseModel
的模型 - 使用
TecfyStatefulWidget<Controller>
而不是TecfyStatefulWidget
- 使用
TecfyState<Statfull, Controller>
而不是State<Statfull>
- 在状态类中实现
createController
方法
推荐项目结构
modules
|-- employee
| |-- widgets
| | |-- employee_cart.widget.dart
| |-- employee.controller.dart
| |-- employee.model.dart
| |-- employee_form.page.dart
| |-- employee_list.page.dart
| |-- employee.service.dart
|-- department
|-- widgets
| |-- text_filed.widget.dart
|-- services
|-- navigator.service.dart
|-- config.service.dart
|-- notification.service.dart
|-- init.service.dart
推荐命名约定
- 文件名应以
.TYPE
结尾,例如config.service.dart
- 文件名应使用下划线分隔多词名称,例如
employee_list.page.dart
- 所有文件夹和文件名应为小写字母
- 服务函数名称应为
addNewOrder()
,相应的控制器函数必须为onAddNewOrder()
示例代码
example/lib/main.dart
import 'package:example/employee/employee_form.page.dart';
import 'package:example/employee/employee_list.page.dart';
import 'package:flutter/material.dart';
import 'package:tecfy_basic_package/tecfy_basic_package.dart';
import 'package:lifecycle/lifecycle.dart';
void main() {
TecfyBasicApp.themeConfig = ThemeConfigMock();
BeamerService.pages = [
EmployeeListPage().beamer,
EmployeeFormPage().beamer,
];
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
navigatorObservers: [defaultLifecycleObserver],
title: '我的应用程序',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: '我的应用程序'),
);
}
}
class MyHomePage extends StatefulWidget {
final String? title;
MyHomePage({Key? key, this.title}) : super(key: key);
[@override](/user/override)
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title ?? "默认"),
),
body: Center(
child: Column(
children: [
AppButtonIconText(
icon: Icon(Icons.add),
label: '员工页面',
onPressed: () async {
AppNavigator.navigateTo(context, () => EmployeeListPage());
},
)
],
),
),
);
}
}
更多关于Flutter基础功能集成插件tecfy_basic_package的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复