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');
  },
);
回到顶部