| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| AppScope/ | 22-Oct-2025 | - | 36 | 33 | ||
| entry/ | 22-Oct-2025 | - | 1,888 | 1,720 | ||
| hvigor/ | 22-Oct-2025 | - | 24 | 22 | ||
| screenshots/Devices/ | 22-Oct-2025 | - | ||||
| .gitignore | D | 22-Oct-2025 | 150 | 11 | 11 | |
| README_zh.md | D | 22-Oct-2025 | 5.5 KiB | 111 | 82 | |
| build-profile.json5 | D | 22-Oct-2025 | 1 KiB | 42 | 41 | |
| hvigorfile.js | D | 22-Oct-2025 | 169 | 2 | 1 | |
| hvigorw | D | 22-Oct-2025 | 2.1 KiB | 64 | 28 | |
| hvigorw.bat | D | 22-Oct-2025 | 2 KiB | 73 | 56 | |
| oh-package.json5 | D | 22-Oct-2025 | 994 | 28 | 26 | |
| ohosTest.md | D | 22-Oct-2025 | 708 | 12 | 10 |
README_zh.md
1# 一多应用市场首页 2 3### 介绍 4 5本示例展示了应用市场首页,页面中包括Tab栏、运营横幅、精品应用、精品游戏等。 6 7本示例使用[一次开发多端部署](https://gitee.com/openharmony/docs/tree/master/zh-cn/application-dev/key-features/multi-device-app-dev)中介绍的自适应布局能力和响应式布局能力进行多设备(或多窗口尺寸)适配,保证应用在不同设备或不同窗口尺寸下可以正常显示。 8 9用到了媒体查询接口[@ohos.mediaquery](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/js-apis-mediaquery.md)。 10 11### 效果预览 12 13本示例在预览器中的效果: 14 15 16 17本示例在开发板上运行的效果: 18 19| 全屏显示 | 窗口操作按钮 | 悬浮窗口显示 | 20| ----------------------------- | -------------------------------------------- | -------------------------------------------- | 21|  |  |  | 22 23使用说明: 24 251. 启动应用,可以查看本应用在全屏状态下的显示效果。 26 272. 在应用顶部,下滑出现窗口操作按钮。(建议通过外接鼠标操作,接入鼠标只需要将鼠标移动至顶部即可出现窗口) 28 293. 点击悬浮图标,将应用悬浮在其它界面上显示。 30 314. 拖动应用悬浮窗口的边框,改变窗口尺寸,触发应用刷新,即可查看应用在不同窗口下的显示效果。 32 335. 改变窗口尺寸的过程中,窗口尺寸可能超出屏幕尺寸。此时在屏幕中只能看到应用部分区域的显示,但可以通过移动窗口位置,查看应用其它区域的显示。 34 35### 工程目录 36``` 37AppMarket/entry/src/main/ets/ 38|---model 39| |---HomeData.ets // 主页用到的图片资源 40| |---HomeDataType.ets // 事件监听函数 41|---pages 42| |---index.ets // 首页 43|---common 44| |---BreakpointSystem.ets // 媒体查询 45| |---Home.ets // 主容器 46| |---IndexApps.ets // app模块(包含安装,展示图片,更多功能) 47| |---IndexContent.ets // 内容模块 48| |---IndexEntrance.ets // 下一步模块(箭头跳转组件) 49| |---IndexHeader.ets // 头部组件 50| |---IndexSwiper.ets // 轮播图 51| |---TabBarItem.ets // 导航栏 52``` 53 54### 具体实现 55本示例介绍如何使用自适应布局能力和响应式布局能力适配不同尺寸窗口,将页面分拆为5个部分。 56#### 底部/侧边导航栏 571、在sm和md断点下,导航栏在底部;在lg断点下,导航栏在左侧。 582、通过Tab组件的barPosition和vertical属性控制TabBar的位置在主轴方向起始或结尾位置和水平或垂直方向,同时还可以通过barWidth和barHeight属性控制TabBar的尺寸,[源码参考](entry/src/main/ets/pages/index.ets )。 59 60#### 标题栏与搜索栏 61通过栅格实现标题栏和搜索栏:在sm和md断点下分两行显示,在lg断点下单行显示,[源码参考](entry/src/main/ets/common/IndexHeader.ets )。 622、在sm和md断点下,标题栏和搜索栏占满12列,此时会自动换行显示。 633、在lg断点下,标题栏占8列而搜索栏占4列,此时标题栏和搜索栏在同一行中显示。 64#### 运营横幅 65实现不同断点下的运营横幅:通过Swiper组件的displayCount属性,sm断点下显示一张图片,md断点下显示两张图片,lg断点下显示三张图片。 66#### 快捷入口 67通过将justifyContent参数配置为FlexAlign.SpaceEvenly实现均分布局:在不同的断点下,快捷入口的5个图标始终均匀排布。 68#### 精品应用 69通过List组件能力,实现延伸能力场景:随着可用显示区域的增加,精品应用中显示的图标数量也不断增加,[源码参考](entry/src/main/ets/common/IndexApps.ets )。 70#### 总体运行效果 71通过将上述各页面在List() {}中引用组件后,可实现首页的组件整合渲染,即可完成整体页面开发。 72 73### 相关权限 74 75不涉及。 76 77### 依赖 78 79不涉及 80 81### 约束与限制 821. 本示例仅支持在标准系统上运行。 83 842. 本示例已适配API version 9版本的SDK,版本号: 3.2.11.9。 85 863. 本示例需要使用DevEco Studio 3.1 Beta2 (Build Version: 3.1.0.400, built on April 7, 2023)及以上版本才可编译运行。 87 884. 本示例在开发板上运行时,需要修改开发板系统配置文件以使能应用窗口能力。 89 90```shell 91# 将开发板文件系统的权限配置为可读写 92hdc shell mount -o rw,remount / 93# 取出原始配置文件 94hdc file recv system/etc/window/resources/window_manager_config.xml C:\ 95# 将文件中<decor enable="false"></decor>改为<decor enable="true"></decor> 96# 用修改后的文件替换系统中的原始文件 97hdc file send C:\window_manager_config.xml system/etc/window/resources/window_manager_config.xml 98# 重启后生效 99hdc shell reboot 100``` 101 102### 下载 103 104如需单独下载本工程,执行如下命令: 105``` 106git init 107git config core.sparsecheckout true 108echo code/SuperFeature/MultiDeviceAppDev/AppMarket/ > .git/info/sparse-checkout 109git remote add origin https://gitee.com/openharmony/applications_app_samples.git 110git pull origin master 111```