我可以根据屏幕宽度自动折叠 OpenUI5 侧导航吗?

Can I auto-collapse OpenUI5 side navigation depending on the screen width?

我目前正在使用 toolPage 控件和 sideNavigation 来显示我的导航。默认情况下,如果我单击顶部的 "hamburger" 图标,它会显示并且可以折叠。

现在,我希望它不仅通过单击图标折叠,而且如果浏览器宽度减小(或者当用户在 phone).有没有办法实现它?我知道 'toolPage' 控件上的布尔属性 'sideExpanded' 和 sideNavigation 控件上的 'expanded',但是如何根据屏幕宽度自动设置它们的值?

我可以在 this.getView() 结构的某处看到 window 的实际宽度吗? 我假设我可以绑定这个扩展值到 function/formatter ,它确定是否应扩展控件。还是我应该以某种方式绑定设备模型?在我的 manifest.json 中,我定义了台式机、平板电脑和 phone 设备类型。正确的做法是什么?非常感谢!

您可以使用 sap.ui.Device.resize.attachHandler(myFunction, oListener?) 方法、回调函数 returns 参数 heightwidth 实现此目的,您可以根据需要展开或折叠 sideNavigation.

另一种方法是检查设备 sap.ui.Device.media.attachHandler(myFunction, null, sap.ui.Device.media.RANGESETS.SAP_STANDARD); 使用此方法您可以使用参数类型的设备访问回调: 做初始化:myFunction(sap.ui.Device.media.getCurrentRange(sap.ui.Device.media.RANGESETS.SAP_STANDARD));

function myFunction(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
}}

此致, 萨达姆