Flutter通用组件插件hzy_normal_widget的使用
Flutter通用组件插件hzy_normal_widget的使用
文件目录
.
├── hzy_config.dart(配置文件 配置web 宽)
├── hzy_normal_getx_list_controller.dart(通用GetX 列表 Controller)
├── hzy_normal_getx_list_view.dart(通用GetX 列表 View)
├── hzy_normal_getx_view.dart(通用GetX View)
├── hzy_normal_less_widget.dart(通用 less widget)
├── hzy_normal_state_widget.dart(通用state widget)
├── hzy_normal_utils.dart (通用工具 适配web)
└── hzy_normal_widget.dart
使用的第三方
get: ^4.6.1
flutter_easyrefresh: ^2.2.1
ttcomment: ^0.0.1
导入
flutter
dependencies:
hzy_normal_widget: ^latest_version
snapshot
dependencies:
hzy_normal_widget:
git:
url: https://gitee.com/tengteng_fan/hzy_normal_widget.git
使用
import 'package:hzy_normal_widget/hzy_normal_widget.dart';
GetView GetViewList 使用事例
import 'package:flutter/material.dart';
import 'package:hzy_normal_widget/hzy_normal_widget.dart';
// ignore: use_key_in_widget_constructors
class TestV extends NormaGetxView<TestC> {
@override
Widget createBody(BuildContext context) {
return Container();
}
}
class TestC extends NormalGetxController {}
// ignore: use_key_in_widget_constructors
class ListV extends NormalGetxListView<ListC> {
/// 列表
@override
Widget createListView(BuildContext context) {
throw UnimplementedError();
}
/// 列表item
@override
Widget createListitem(BuildContext context, int index) {
throw UnimplementedError();
}
/// 列表占位页
@override
Widget? createEmptyWidget() {
throw UnimplementedError();
}
/// 创建失败 界面
@override
Widget? createErrorWidget() {
return null;
}
}
class ListC extends NormalGetxListController {}
NormalGetxController NormalGetxListController 详细介绍
abstract class NormalGetxController extends GetxController {
var pageState = PageState.initializedState.obs;
var sizew = 0.0.obs;
configsiezw(double maxw) {
sizew.value = maxw;
}
}
abstract class NormalGetxListController extends NormalGetxController
implements AbstractNetWork {
/// 刷新控制器
EasyRefreshController? refreshController;
int page = 1;
@override
void onInit() {
super.onInit();
refreshController = EasyRefreshController();
}
// 下拉刷新触发事件
configRefresh() async {
page = 1;
getnetworkdata(1, configNetWorkParmas());
}
// 上拉加载更多触发事件
configLoading() async {
page++;
getnetworkdata(2, configNetWorkParmas());
}
/// 网络请求 参数方法
@override
Map<String, dynamic>? configNetWorkParmas() {
return null;
}
/// 网络请求数据
@override
void getnetworkdata(int? type, Map<String, dynamic>? info) async {}
void endRefresh({int? type, PageState? state}) {
bool success = true;
bool noMore = false;
if (state == PageState.noMoreDataState) {
noMore = true;
}
/// 网络请求状态值
if (state == PageState.errorState ||
state == PageState.erroronlyTotal ||
state == PageState.errorshowRelesh) {
success = false;
}
if (refreshController != null) {
if (type == 1) {
refreshController!.finishRefresh(success: success);
refreshController!.resetLoadState();
} else if (type == 2) {
refreshController!.finishLoad(success: success, noMore: noMore);
}
}
pageState.value = state!;
}
}
更多关于Flutter通用组件插件hzy_normal_widget的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter通用组件插件hzy_normal_widget的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
hzy_normal_widget
是一个Flutter插件,旨在提供一系列通用的、易于使用的UI组件,帮助开发者快速构建界面。这个插件包含了一些常见的UI组件,如按钮、输入框、对话框、列表项等,适合在多种应用场景中使用。
安装
首先,你需要在 pubspec.yaml
文件中添加依赖:
dependencies:
hzy_normal_widget: ^1.0.0
然后运行 flutter pub get
来安装插件。
使用示例
以下是一些常用的组件及其基本用法:
1. HzyTextButton
- 文本按钮
import 'package:hzy_normal_widget/hzy_normal_widget.dart';
HzyTextButton(
onPressed: () {
print('Button Pressed');
},
text: 'Click Me',
);
2. HzyInputField
- 输入框
import 'package:hzy_normal_widget/hzy_normal_widget.dart';
HzyInputField(
hintText: 'Enter your name',
onChanged: (value) {
print('Input: $value');
},
);
3. HzyDialog
- 对话框
import 'package:hzy_normal_widget/hzy_normal_widget.dart';
HzyDialog.show(
context: context,
title: 'Alert',
content: 'This is a simple dialog.',
actions: [
HzyTextButton(
onPressed: () {
Navigator.pop(context);
},
text: 'OK',
),
],
);
4. HzyListItem
- 列表项
import 'package:hzy_normal_widget/hzy_normal_widget.dart';
HzyListItem(
leading: Icon(Icons.star),
title: 'List Item Title',
subtitle: 'This is a subtitle',
trailing: Icon(Icons.arrow_forward),
onTap: () {
print('Item Tapped');
},
);