README_zh.md

横竖屏切换

介绍

本实例展示如何使用媒体查询,通过@ohos.mediaquery 接口完成在不同设备上显示不同的界面效果。

效果预览

主页 详情页面
main new

使用说明

1.在竖屏设备上,首页展示新闻列表,点击新闻进入详情界面。

2.在横屏设备上,首页左侧展示新闻列表,右侧显示新闻详情,点击新闻右侧显示所点击的新闻的详情。

工程目录

entry/src/main/ets/
|---component
|   |---NewView.ets                    // 弹窗组件
|   |---TitleBar.ets                   // 首页标题组件
|   |---TitleWithBack.ets              // 详情页面标题组件
|---entryAbility
|---model
|   |---DataModel.ets                  // 数据类型
|   |---Logger.ets                     // 日志工具
|   |---New.ets                        // 虚拟数据
|---pages
|   |---Index.ets                      // 首页
|   |---New.ets                        // 详情页面

具体实现

  • 横竖屏切换功能接口封装在Index,源码参考:Index.ets
    • 获取监听句柄:通过mediaQuery.matchMediaSync('screen and (min-aspect-ratio: 1.5) or (orientation: landscape)')方法来获取有一个监听横竖屏的句柄,接口参考:@ohos.mediaquery
    • 执行控制横竖屏切换效果的函数:调用this.listener.on('change', this.onLand.bind(this))函数来实现横竖屏下不同的功能或者页面效果;

相关权限

不涉及。

依赖

不涉及。

约束与限制

1.本示例仅支持标准系统上运行。

2.本示例已适配API version 14版本SDK,版本号:5.0.2.301。

3.本示例需要使用DevEco Studio NEXT Release (Build Version: 5.0.3.900, built on October 8, 2024)及以上版本才可编译运行。

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo /code/UI/ArkTsComponentCollection/MediaQuery > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master