我正在开发的这个SAPUI5
应用程序使用Panel
控件,其上有一些按钮。现在,每当用户折叠面板并在展开时显示它们时,我都必须隐藏这些按钮。我尝试使用getCollapsed()
方法,但没有效果。我基本上寻找的是面板的collapse
事件,默认情况下不可用。
有任何帮助吗?
感谢。
答案 0 :(得分:1)
嗯,看起来Panel控件确实没有事件处理程序......
作为一种解决方法,您可以在面板托盘中添加自己的展开/折叠切换按钮,单击该按钮可以获取getCollapsed()状态并相应地显示/隐藏其他按钮
答案 1 :(得分:1)
这里唯一的解决方案可能是使用您自己的按钮替换默认折叠图标,并将press
事件附加到其上。像:
1. Declare a `Panel` with `showCollapseIcon` set to false.
var oPanel = new sap.ui.commons.Panel({
showCollapseIcon: false
});
2. Add your own button. I prefer a `lite` button.
var oCollapseButton = new sap.ui.commons.Button({
icon: '<your icon>',
lite: true,
press: function (e) {
if (!oPanel.getCollapsed()) {
//If not collapsed
oPanel.setCollapsed(true);
//Code to hide panel buttons
//(and toggle collapse button image if needed) after this
} else {
//If already collapsed
oPanel.setCollapsed(false);
//Code to show panel buttons
//(and toggle collapse button image if needed) after this
}
}
});
oPanel.addButton(oCollapseButton);
P.S:您可能还想为自定义折叠按钮添加一些样式和对齐方式。为此,您可以在按钮中添加CSS3
类,然后将其添加到面板中,如:
oCollapseButton.addStyleClass('<your class>');
答案 2 :(得分:0)
您可以使用sap.m.Panel https://openui5.hana.ondemand.com/docs/api/symbols/sap.m.Panel.html#event:expand
具有扩展属性,您只需使用
即可setExpanded(true) ;
展开面板,让控件保持其状态,而不必跟踪它。
我确信自从您提出问题后这一切都发生了变化,这个答案与1.24.2
有关