如何设置sap.m.MessagePopover的宽度?

时间:2017-01-03 15:39:52

标签: sapui5 sap-fiori

控件sap.m.MessagePopover有一个属性_oPopover(里面包含sap.m.Popover)。 使用此属性,我可以设置弹出框宽度:

messagePopover._oPopover.setContentWidth("450px");

但是,由于不应使用从_开始的SAP属性,是否有人知道更清洁的方式?

2 个答案:

答案 0 :(得分:0)

另一种解决方案是使用CSS类。然而,有一个问题。从下面生成的消息popover生成的DOM中可以看到,使用了内联样式:(。 enter image description here

只有覆盖内联样式的方法是在CSS中使用!important,这也是不推荐的方法。但是,考虑到使用内联CSS,我会使用!important关键字。以下是工作代码:

XML代码(用于添加类):

<MessagePopover id='myMP' class='myPopoverClass'>
    <items>
        <MessagePopoverItem title='Title' subTitle='SubTitle'></MessagePopoverItem>
    </items>
</MessagePopover>

CSS:

        .myPopoverClass {
            width:100rem;
        }
        .myPopoverClass .sapMPopoverCont {
            width:100% !important;
        }

您可以使用消息Popover所需的宽度。

编辑:这是源代码:

MessagePopover.prototype.init = function () {
            var that = this;
            var oPopupControl;

            this._oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.m");

            this._oPopover = new ResponsivePopover(this.getId() + "-messagePopover", {
                showHeader: false,
                contentWidth: "440px",
                placement: this.getPlacement(),
                showCloseButton: false,
                modal: false,
                afterOpen: function (oEvent) {
                    that.fireAfterOpen({openBy: oEvent.getParameter("openBy")});
                },
                afterClose: function (oEvent) {
                    that._navContainer.backToTop();
                    that.fireAfterClose({openBy: oEvent.getParameter("openBy")});
                },
                beforeOpen: function (oEvent) {
                    that.fireBeforeOpen({openBy: oEvent.getParameter("openBy")});
                },
                beforeClose: function (oEvent) {
                    that.fireBeforeClose({openBy: oEvent.getParameter("openBy")});
                }
            }).addStyleClass(CSS_CLASS);

答案 1 :(得分:0)

从UI5版本1.46开始,可以使用更灵活的控件sap.m.MessageView代替旧的sap.m.MessagePopover