# white_block_solution **Repository Path**: ohadss/white_block_solution ## Basic Information - **Project Name**: white_block_solution - **Description**: 基于ArkUI页面抛滑白块优化解决方案 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 6 - **Created**: 2024-11-05 - **Last Updated**: 2025-05-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # white_block_solution 本项目已迁移至gitcode的OH社区,给您带来不便,十分抱歉。新的地址:https://gitcode.com/openharmony-sig/adss_performance_samples/tree/master/white_block_solution ## 简介 本项目是一个基于ArkUI页面抛滑白块优化解决方案,主要使用ImageKnife和prefetcher三方库实现。 ## 效果预览 ![](./screenshots/device/white_block_solution.gif) ## 工程目录 ``` ├──ets │ ├──constants │ │ ├──BreakpointConstants.ets // 断点相关常量 │ │ ├──CommonConstants.ets // 一般常量 │ │ └──HomeConstants.ets // 主页的常量 │ ├──entryability │ │ └──EntryAbility.ets │ ├──entrybackupability │ │ └──EntryBackupAbility.ets │ ├──model │ │ ├──DataSource.ets // prefetchet的数据源 │ │ ├──FooterTabData.ets // 底部导航栏 │ │ ├──FunctionEntryData.ets // 功能区 │ │ ├──FunctionEntryListData.ets // 功能区数据列表 │ │ ├──ImageKnifeWaterFlowInfoFetchingAgent.ets // prefetchet的预取代理 │ │ ├──Notifier // prefetchet数据源的监听 │ │ ├──WaterFlowDescriptionInfo.ets // 瀑布流item底部描述信息 │ │ ├──WaterFlowInfo.ets // 瀑布流item媒体信息 │ │ ├──WaterFlowInfoItem.ets // prefetchet的数据源项 │ │ └──WaterFlowListData.ets // 瀑布流数据列表 │ ├──pages │ │ ├──ClassificationContent.ets // 分类页面 │ │ ├──HomeContent.ets // 主页 │ │ ├──Index.ets // 滑动页面入口 │ │ └──MenuPage.ets // 底部导航栏 │ ├──utils │ │ ├──BreakpointSystem.ets // 一多断点监听 │ │ ├──BreakpointType.ets // 一多断点类型 │ │ ├──Logger.ts // 日志 │ │ └──NetworkUtil.ets // 网络请求 │ └──view │ ├──FunctionView.ets // 功能区页面 │ ├──SearchBarView.ets // 搜索栏页面 │ ├──WaterFlowDescriptionView.ets // 瀑布流item底部描述页面 │ ├──WaterFlowImageView.ets // 瀑布流item图片描述页面 │ ├──WaterFlowItemComponent.ets // 分类页面的瀑布流item描述页面 │ ├──WaterFlowRepeatView.ets // 分类页面的瀑布流 │ └──WaterFlowViewLazyForEach.ets // 首页页面 └──resources // 资源类 ``` ## 具体实现 1. 首页瀑布流由LazyForEach+ImageKnife+Prefetcher实现,分类页瀑布流由repeat+ImageKnife+Prefetcher实现。 2. 先使用Prefetcher动态选择合适的实际加载和取消图片缓存,然后使用ImageKnife三方库完成实际的图片缓存和缓存管理。 ## 使用说明 1. 功能区可以左右滑动。 2. 底部导航栏的"首页"和"分类"可以点击,显示瀑布流页面。 ## 相关权限 1. 获取网络请求权限:ohos.permission.INTERNET。 2. 获取网络链接状态权限:ohos.permission.GET_NETWORK_INFO。 ## 约束与限制 1. 本示例仅支持标准系统上运行,支持设备:直板机、折叠机。 2. HarmonyOS系统:HarmonyOS NEXT Developer Beta5及以上。 3. DevEco Studio版本:DevEco Studio NEXT Developer Beta5及以上。 4. HarmonyOS SDK版本:HarmonyOS NEXT Developer Beta5 SDK及以上。