
回复
一、介绍
很多体验好的app在进入列表页时会有列表轮廓为形态的骨架图闪烁动画,从而让用户感知新页面在加载运行的动态过程,让体验更加流程。
二、实现思路
骨架图用于在页面数据加载完成前,先给用户展示出页面的大致结构(通常以灰色或其他浅色系的占位图形式呈现),待接口数据加载完成后,再渲染出实际页面内容并替换掉骨架屏。 通过网络接口返回的状态改变
跳转的新页面有加载中、加载成功、加载失败、加载数据为空四种状态。通过 loadingStatus 值,动态切换页面内容。
三、具体实现
(1)通过setTimeout方法来模拟网络请求,延迟3秒返回数据
(2)定义页面的状态枚举类
(3)显示动画来控制骨架图的闪烁动画
(4)根据LoadingStatus的值渲染不同的页面内容:当LoadingStatus为loading时,显示骨架图(LoadingSkeletonView);若LoadingStatus为success,则显示列表页;若数据为空,则显示无数据页面;若LoadingStatus为FAILED,则显示加载失败页面。
四、完整代码
index.ets
骨架图控件LoadingSkeletonView
骨架图的自定义item