SAPUI5混合移动(sap.m)和桌面(sap.ui.commons)

时间:2014-06-09 12:06:48

标签: sapui5

我正在使用桌面SAPUI5应用程序,并且需要在其中一个页面中使用TileContainer / Tiles,但是发现按下事件不起作用。试过其他移动控件,例如sap.m.Button新闻事件,但他们也没有工作。 有什么想法吗?

2 个答案:

答案 0 :(得分:2)

移动控件仅适用于触控事件。您需要设置onclick个事件。您有3个选项可以执行此操作:

1)将onclick附加到目标控件:

var oButton = new sap.m.Button({
    text : "Hello",
    press : function() { alert('You've pressed me!') }
}).attachBrowserEvent('click', 
    function(event){
        sap.ui.getCore().byId(event.target.id).firePress()
    });

2)扩展标准移动控件:

sap.m.Button.extend('my.Button');
my.Button.prototype.onclick = function(){
    this.ontap.apply(this, arguments);
};
my.Button.prototype.onmousedown = function(){
    this.ontouchstart.apply(this, arguments);
};
my.Button.prototype.onmousemove = function(){
    this.ontouchmove.apply(this, arguments);
};
my.Button.prototype.onmouseup = function(){
    this.ontouchend.apply(this, arguments);
};

3)修改标准控件(不太好主意):

sap.m.Button.prototype.onclick = function(){
    this.ontap.apply(this, arguments);
};
...

答案 1 :(得分:2)

我没有在sap-ui-bootstrap中添加sap.m,添加了这个移动ui控件。

data-sap-ui-libs =" sap.ui.commons,sap.m"

非常感谢qmacro和Nikolay ......