ttcomment 0.0.6 ttcomment: ^0.0.6 copied to clipboard
项目开发通用工具
更新 #
由于之前flutter_screenutil库的安全区域计算问题,把flutter_screenutil版本写死,现在最新版本解决了此问题,
故 flutter_screenutil: ^5.5.3+2,改成跟随版本.
删除 flutter_screenutil: 5.4.1+1
对外公开第三方库,方便使用者调用,减少相同库重复引入
目录 #
.
├── comment_config(通用配置项)
│ ├── comment_colors.dart(颜色)
│ ├── commentconfigindex.dart
│ ├── stringMacro.dart(字符串)
│ └── themeconfig(主题)
│ ├── normal_no_splash_factory.dart(取消InkWell点击动画)
│ ├── themeconfig.dart(夜间颜色模式一个事例)
│ └── ttpublictheme.dart(夜间模式主题事例)
├── comment_http(项目中使用的网络请求)
│ ├── app_dio.dart
│ ├── default_http_transformer.dart(通用数据解析器)
│ ├── http_client.dart
│ ├── http_config.dart
│ ├── http_exceptions.dart
│ ├── http_parse.dart
│ ├── http_response.dart
│ ├── http_transformer.dart
│ └── httpindex.dart
├── comment_tools(通用工具)
│ ├── comment_tools.dart
│ └── normal_image_tool.dart
├── comment_widget(通用widget)
│ ├── comment_appbar_generator.dart(通用导航栏)
│ ├── comment_base_page.dart(占位页)
│ ├── comment_button_widget.dart(通用按钮)
│ ├── comment_pop_dia_log_widget.dart(通用pop 弹框)
│ ├── comment_state.dart(界面规范接口类)
│ ├── comment_text_style.dart(通用字体)
│ ├── comment_widagets.dart(通用 widget)
│ └── comment_widget_index.dart
├── page_state.dart(界面状态)
├── popRouter.dart(pop 路由动画)
└── ttcomment.dart
导入 #
flutter #
dependencies:
ttcomment: ^latest_version
snapshot #
dependencies:
ttcomment:
git:
url: https://gitee.com/tengteng_fan/ttcomment.git
使用 #
import 'package:ttcomment/ttcomment.dart';
comment_state.dart(界面规范接口类)使用事例 #
import 'package:flutter/material.dart';
import 'package:ttcomment/ttcomment.dart';
abstract class NormalState<T extends StatefulWidget> extends State<T>
with AbstractNetWork, AbstractWidget, AbstractAttribute {
/// 生命周期
///
///
/// 界面初始化完成
@override
void initState() {
initDefaultState();
super.initState();
}
/// 界面构建视图入口
@override
Widget build(BuildContext context) {
return createScaffol(
context: context,
safeAreatop: safeAreatop,
safeAreabottm: safeAreabottm,
pageState: pageState,
resizeToAvoidBottomInset: resizeToAvoidBottomInset,
title: title,
backgroundColor: backgroundColor,
navbackcolor: navbackcolor,
);
}
@override
void dispose() {
initDefaultDispose();
super.dispose();
}
@override
Widget createColumWidget(BuildContext context) {
return Container(
alignment: Alignment.center,
child: LayoutBuilder(
builder: (context, constraints) {
return createonlyColumWidget(context));
},
),
);
}
///
Widget createonlyColumWidget(BuildContext context) {
return Column(
children: [
createHeaderWidget(),
Expanded(
child: createBody(context),
),
],
);
}
/// 网络请求
///
///
@override
void getnetworkdata(int? type, Map<String, dynamic>? info) {}
/// 创建视图
///
///
/// 触发方法
///
///
@override
Map<String, dynamic>? configNetWorkParmas() {
return null;
}
/// 界面进入
void initDefaultState() {}
/// 界面销毁
void initDefaultDispose() {}
/// 通用刷新state
void configsetState(VoidCallback fn) {
if (mounted) {
setState(() {
fn();
});
}
}
}
vscode 生成State 的代码块,方便开发
"TTState": {
"prefix": "ttstate",
"body": [
"import 'package:flutter/material.dart';",
"import 'package:ttcomment/ttcomment.dart';",
"import 'package:flutter_screenutil/flutter_screenutil.dart';",
"",
"",
"",
"class $1Page extends TTNormalStatefulWidget {",
"\tconst $1Page({Key? key}) : super(key: key);",
"",
"\t@override",
"\tTTNormalState<TTNormalStatefulWidget> getState() {",
"\t\treturn _$1PageState();",
"\t}",
"}",
"",
"",
"",
"class _$1PageState extends TTNormalState<$1Page> {",
"",
"",
"\t/// 属性",
"\t///",
"\t///",
"",
"",
"\t@override",
"\tString? get title => '$1';",
"",
"",
"\t/// 生命周期",
"\t///",
"\t///",
"",
"",
"\t/// 界面初始化",
"\t@override",
"\tvoid initDefaultState() {",
"\t\tsuper.initDefaultState();",
"\t}",
"",
"",
"\t/// 界面销毁",
"\t@override",
"\tvoid initDefaultDispose() {",
"\t\tsuper.initDefaultDispose();",
"\t}",
"",
"",
"\t/// 网路请求",
"\t///",
"\t///",
"",
"",
"\t/// 构建视图",
"\t///",
"\t///",
"",
"",
"\t@override",
"\tWidget createBody(BuildContext context) {",
"\t\treturn Container(",
"\t\t\talignment: Alignment.center,",
"\t\t\tdecoration: const BoxDecoration(",
"\t\t\t\tcolor: Colors.white",
"\t\t\t),",
"\t\t\tchild: const Text('$1'),",
"\t\t);",
"\t}",
"",
"",
"\t/// 触发方法",
"\t///",
"\t///",
"",
"",
"\t/// 配置默认数据",
"\t@override",
"\tvoid configNormalData() {}",
"}",
""
]
},