1# 横竖屏切换 2 3### 介绍 4 5本实例展示如何使用媒体查询,通过[@ohos.mediaquery](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/js-apis-mediaquery.md) 接口完成在不同设备上显示不同的界面效果。 6 7### 效果预览 8 9|主页|详情页面| 10|--------------------------------|--------------------------------| 11|| | 12 13使用说明 14 151.在竖屏设备上,首页展示新闻列表,点击新闻进入详情界面。 16 172.在横屏设备上,首页左侧展示新闻列表,右侧显示新闻详情,点击新闻右侧显示所点击的新闻的详情。 18 19### 工程目录 20``` 21entry/src/main/ets/ 22|---component 23| |---NewView.ets // 弹窗组件 24| |---TitleBar.ets // 首页标题组件 25| |---TitleWithBack.ets // 详情页面标题组件 26|---entryAbility 27|---model 28| |---DataModel.ets // 数据类型 29| |---Logger.ets // 日志工具 30| |---New.ets // 虚拟数据 31|---pages 32| |---Index.ets // 首页 33| |---New.ets // 详情页面 34``` 35### 具体实现 36 37* 横竖屏切换功能接口封装在Index,源码参考:[Index.ets](entry/src/main/ets/pages/Index.ets) 38 * 获取监听句柄:通过mediaQuery.matchMediaSync('screen and (min-aspect-ratio: 1.5) or (orientation: landscape)')方法来获取有一个监听横竖屏的句柄,接口参考:[@ohos.mediaquery](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/js-apis-mediaquery.md) ; 39 * 执行控制横竖屏切换效果的函数:调用this.listener.on('change', this.onLand.bind(this))函数来实现横竖屏下不同的功能或者页面效果; 40 41### 相关权限 42 43不涉及。 44 45### 依赖 46 47不涉及。 48 49### 约束与限制 50 511.本示例仅支持标准系统上运行。 52 532.本示例已适配API version 14版本SDK,版本号:5.0.2.301。 54 553.本示例需要使用DevEco Studio NEXT Release (Build Version: 5.0.3.900, built on October 8, 2024)及以上版本才可编译运行。 56 57### 下载 58 59如需单独下载本工程,执行如下命令: 60``` 61git init 62git config core.sparsecheckout true 63echo /code/UI/ArkTsComponentCollection/MediaQuery > .git/info/sparse-checkout 64git remote add origin https://gitee.com/openharmony/applications_app_samples.git 65git pull origin master 66``` 67