我可以根据屏幕宽度自动折叠 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 参数 height
和 width
实现此目的,您可以根据需要展开或折叠 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
}}
此致,
萨达姆
我目前正在使用 toolPage 控件和 sideNavigation 来显示我的导航。默认情况下,如果我单击顶部的 "hamburger" 图标,它会显示并且可以折叠。
现在,我希望它不仅通过单击图标折叠,而且如果浏览器宽度减小(或者当用户在 phone).有没有办法实现它?我知道 'toolPage' 控件上的布尔属性 'sideExpanded' 和 sideNavigation 控件上的 'expanded',但是如何根据屏幕宽度自动设置它们的值?
我可以在 this.getView() 结构的某处看到 window 的实际宽度吗? 我假设我可以绑定这个扩展值到 function/formatter ,它确定是否应扩展控件。还是我应该以某种方式绑定设备模型?在我的 manifest.json 中,我定义了台式机、平板电脑和 phone 设备类型。正确的做法是什么?非常感谢!
您可以使用 sap.ui.Device.resize.attachHandler(myFunction, oListener?)
方法、回调函数 returns 参数 height
和 width
实现此目的,您可以根据需要展开或折叠 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
}}
此致, 萨达姆