hb_common 0.0.2 copy "hb_common: ^0.0.2" to clipboard
hb_common: ^0.0.2 copied to clipboard

基础组件库,包含常用的基础组件, extension,公共样式,工具类等

hb_common #

基础组件库,包含常用的基础组件, extension,公共样式,工具类等。

  1. 国际化初始化与初始化 dialog
 MaterialApp(
  builder: HbDialog.setup(),
  navigatorObservers: [HbDialog.navigatorObservers],
  localizationsDelegates: const <LocalizationsDelegate<
        Object?>>[
      //...
      HbCommonLocalizations.delegate,
    ],
  )
  <uses-permission android:name="android.permission.CAMERA"/>
  1. 本地存储
await HbStorage.init();
runApp(const MyApp());
  1. 通用列表,包含下拉刷新,上拉加载更多,回到顶部
  • 使用
// 初始化分页入参的json key
HbPageApiCall.setUp(pageKey: "page", pageSizeKey: 'size');
// 实现model,后端分页的json需要继承HbPageModel
class PageModel implements HbPageModel {
  // 这里可以根据自动生成的json model进行修改
}


// 使用
 final HbPageApiCall<OrderModel> pageApiCall =
      HbPageApiCall<OrderModel>(Api.getList);
// Api.getList的类型是:Future<PageModel> getList(Map<String, dynamic> rowData)

// 下拉刷新
Future<void> _onRefresh() async {
  if (mounted) setState(() {});
  pageApiCall.refresh();
  await _loadMore();
}

// 上拉加载更多
Future<void> _loadMore() async {
  await pageApiCall.loadMore();
  if (mounted) setState(() {});
}

HbList(
  itemCount: pageApiCall.items.length,
  hasMore: pageApiCall.hasMore,
  loadMore: _loadMore,
  onRefresh: _onRefresh,
  skeleton: const OrderSkeleton(),
  itemBuilder: (context, index) {
    final item = pageApiCall.items[index];
    return OrderItem(item: item).onInkTap(() {
      HbNav.push(Routes.orderDetail, arguments: item);
    });
  },
),
  1. 表单工具
// 第一步:继承选项model
// 这里可以根据自动生成的json model进行修改
class SelectItemModel implements HbSelectItemModel {}

// 使用
final HbFormController _form = HbFormController();

void _submit() {
  if (!_form.validate()) return;
  // 处理你的逻辑
}

HbForm(formController: _form, children: [
  HbSelect(
    label: context.locale.token,
    radioController: widget.tokenController,
    enabled: false,
    selectItems: tokenListFromProvider,
  ),
  HbInput(
    label: context.locale.amount,
    controller: widget.amountController,
    hintText: context.locale.enterAmount,
    keyboardType: const TextInputType.numberWithOptions(
        decimal: true),
    inputFormatters: [HbAmountFormatter(digit: 6)],
  ),
]);
0
likes
25
points
29
downloads

Publisher

unverified uploader

Weekly Downloads

基础组件库,包含常用的基础组件, extension,公共样式,工具类等

License

MIT (license)

Dependencies

bot_toast, crypto, decimal, encrypt, flutter, flutter_localizations, flutter_screenutil, flutter_spinkit, flutter_svg, form_builder_validators, hb_router, intl, path_provider, pointycastle, shared_preferences

More

Packages that depend on hb_common