首页 > 其他分享 >SAP UI5 sap.ui.Device.media 的使用介绍

SAP UI5 sap.ui.Device.media 的使用介绍

时间:2022-10-03 22:47:31浏览次数:53  
标签:SAP media API ui Device sap

sap.ui.Device.media 是一个命名空间,属于 sap/ui/Device.

该 API 属于屏幕宽度更改的事件 API。此 API 基于媒体查询,但如果使用的浏览器本身不支持媒体查询,也可以使用此 API。 在这种情况下,媒体查询的行为由这个 API 模拟。

有几个可用的预定义范围集,它们中的每一个都定义了一组屏幕宽度的间隔(从小到大)。 每当屏幕宽度发生变化并且当前屏幕宽度与更改前的时间间隔不同时,就会调用范围集的已注册事件处理程序。

如果需要,还可以定义一组自定义间隔。

以下示例显示了一个典型用例:

function sizeChanged(mParams) {
    switch(mParams.name) {
        case "Phone":
            // Do what is needed for a little screen
            break;
        case "Tablet":
            // Do what is needed for a medium sized screen
            break;
        case "Desktop":
            // Do what is needed for a large screen
    }
}

// Register an event handler to changes of the screen size
sap.ui.Device.media.attachHandler(sizeChanged, null, sap.ui.Device.media.RANGESETS.SAP_STANDARD);
// Do some initialization work based on the current size
sizeChanged(sap.ui.Device.media.getCurrentRange(sap.ui.Device.media.RANGESETS.SAP_STANDARD));

看个具体的例子:

上面的代码,第一个 a 是我浏览器在全屏环境下打印的结果,返回的 width 对应的 device 为 Desktop,因为 width 是 1024 px;

然后我故意用鼠标拖拽的方式,把浏览器窗口的宽度缩小,如下图所示:

因此第二个 a 打印为 Tablet,因为宽度缩小为 600 px 了。

单步调试了解 Device.media.getCurrentRange 的实现原理:

Device.js 里的实现:

得到所有的 query:

window.matchMedia 是一个 native 实现?

这次返回 true:

随便传一个 aa 进去:

注意区别:

window.matchMedia("all and (min-width:2024px)");

最后的返回值:

注意,我是直接在 SAP UI5 源代码上设置断点,然后从 Chrome 开发者工具 Console 发起调用,触发断点,能看到这个 VM 标志:

标签:SAP,media,API,ui,Device,sap
From: https://www.cnblogs.com/sap-jerry/p/16751481.html

相关文章

  • SAP UI5 sap.ui.Device.media 公有方法介绍
    sap.ui.Device.media.attachHandler:注册给定的事件处理程序以根据使用指定名称设置的范围更改屏幕宽度的事件。每当屏幕宽度发生变化并且当前屏幕宽度处于与宽度变化之......
  • SAP UI5 sap.ui.Device.media.RANGESETS 的使用介绍
    这是一个namespace,来自sap.ui.core:包含预定义屏幕宽度媒体查询范围集(mediaqueryrangesets)的名称和设置的枚举。在Chrome开发者工具Console面板里能够查看到所......
  • SAP UI5 sap.ui.Device.media.RANGESETS.SAP_STANDARD_EXTENDED 介绍
    这是一个4步范围集(Phone,Tablet,Desktop,LargeDesktop)。这组的范围是:phone:适用于小于600像素的屏幕。tablet:适用于大于或等于600像素且小于1024像素的屏幕......
  • flutter系列之:查询设备信息的利器:MediaQuery
    目录​​简介​​​​MediaQuery详解​​​​MediaQuery的属性​​​​MediaQuery的构造函数​​​​MediaQuery的使用​​​​总结​​简介移动的开发中,大家可能最头疼的就......
  • ImGUI 1.87 绘制D3D外部菜单
    ImGUI它是与平台无关的C++轻量级跨平台图形界面库,没有任何第三方依赖,可以将ImGUI的源码直接加到项目中使用,该框架通常会配合特定的D3Dx9等图形开发工具......
  • SAP ABAP ALV 的一些总结:Custom container 和 Splitter container
    本文分以下四种情形来介绍。Customcontainer自定义容器可以使用CL_GUI_CUSTOM_CONTAINER类创建,但它需要一个可以放置它的父容器,或者需要在自定义屏幕中创建自定义控制区......
  • 关于 SAP UI5 Web Components
    SAPUI5WebComponents是UI5Evolution项目的关键支柱,以实现UI5的UI元素的轻量级和独立消费。顾名思义,它们是使用Web组件标准构建的。Web组件适用于所有主流浏......
  • GUI编程
    我们要怎么学?是什么,怎么玩,怎么用组件窗口弹窗面板文本框列表框按钮图片监听事件键盘事件破解工具1.简介GUI的核心技术:SwingAW......
  • Qt-工程打开后,编译提示“error: member access into incomplete type 'Ui::MainWindow
    问题现象:之前程序都是可以正常运行的,编译也没有错误提示。今天打开工程后,提示“error:memberaccessintoincompletetype'Ui::MainWindow'”问题原因:原因:访问到不完整的......
  • SAP UI5 应用的屏幕尺寸检测工作原理深入剖析试读版
    本教程之前的步骤:​​SAPUI5应用开发教程之一百三十四-SAPUI5SimpleForm属性columnsL,columnsM,columnsXL的属性深入剖析​​我们深入分析了SAPUI5SimpleForm控......