9.9 占位图
大家已经发现了,因为首页拉取的数据比较多,所以首屏展示慢。(如多次请求、网络延迟等等)
大家可以放一张占位图,加强下用户体验
实现步骤:
第 1 步:添加图片
将占位图放在这个位置
assets/images/3.0x/home_placeholder.png
- 通过 vscode
Flutter GetX Generator - 猫哥
插件 生成 x2 x1 尺寸图
配置图片资源索引
lib/common/values/images.dart
第 2 步:占位图组件
lib/common/components/placehold.dart
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| import 'package:flutter/material.dart';
import '../index.dart';
class PlaceholdWidget extends StatelessWidget { final String? assetImagePath;
const PlaceholdWidget({ Key? key, this.assetImagePath, }) : super(key: key);
@override Widget build(BuildContext context) { return ImageWidget.asset(assetImagePath ?? AssetsImages.homePlaceholderPng) .paddingHorizontal(AppSpace.page) .center(); } }
|
第 3 步:控制器
为了方便模拟效果,特意延迟拉取数据 1 秒看看效果
lib/pages/goods/home/controller.dart
1 2 3 4 5 6 7 8
| _initData() async { ...
await Future.delayed(const Duration(seconds: 1));
update(["home"]); }
|
第 3 步:视图
lib/pages/goods/home/view.dart
1 2 3 4 5 6 7 8 9 10 11 12 13
| Widget _buildView() { return controller.flashShellProductList.isEmpty || controller.newProductProductList.isEmpty ? const PlaceholdWidget() : CustomScrollView( slivers: [ ... ], ); }
|
提交代码到 git