Sapui5 检索Toast消息高度
在web应用程序上工作时,我需要显示从WS-Server检索到的一条或多条警告消息 为此,我使用了Sapui5 检索Toast消息高度,sapui5,Sapui5,在web应用程序上工作时,我需要显示从WS-Server检索到的一条或多条警告消息 为此,我使用了sap.m.ToastMessage.show及其offset属性,因此,如果有多条消息,我可以一条接一条地显示它们 以下代码实际上适用于我: showToastMessages: function(warnings){ var msgList = warnings.split("|"); for(var i = 0 ; i < msgList.len
sap.m.ToastMessage.show
及其offset属性,因此,如果有多条消息,我可以一条接一条地显示它们
以下代码实际上适用于我:
showToastMessages: function(warnings){
var msgList = warnings.split("|");
for(var i = 0 ; i < msgList.length; i++){
var xset = 0 ;
var yset = -50 + (i * -70);
sap.m.MessageToast.show(msgList[i],{
offset: xset.toString() + " " + yset.toString()
});
}
}
您的偏移量应基于消息的长度和宽度。因为宽度是固定的。您可以计算出每行需要多少(对于
15em
的默认宽度,大约需要25-30个字符)
也考虑<代码>填充< /代码>。(将是常数)
这里唯一的变量是您上一条消息的长度,您可以通过它来决定
偏移量
属性。谢谢Sunil,我刚刚修改了消息中编辑的函数。思想不是更好的解决方案,所以我不得不使用康斯坦斯。
showToastMessages: function(warnings){
var msgList = warnings.split("|");
var msgHeight = 0;
for(var i = 0 ; i < msgList.length; i++){
var xset = 0 ;
var yset = -50 - msgHeight;
sap.m.MessageToast.show(msgList[i],{
offset: xset.toString() + " " + yset.toString()
});
msgHeight = msgHeight + retrieveMsgToastHeight() + MSG_OFFSET;
}
}
showToastMessages: function(warnings){
var msgList = warnings.split("|");
// CONSTANTS
var PADDING = 25;// 45; // Padding height of each message
var CHAR_PER_LINE = 28; // Aprox. number of characters per line in a toast message
var HEIGHT_PER_LINE = 20; // Height in pixels that is each line
var MSG_OFFSET = 52; // Vertical offset in order to avoid bottom margin
var BTW_MSG_OFFSET = 5; // Separation between messages
var msgHeight = MSG_OFFSET;
for(var i = 0 ; i < msgList.length; i++){
var xset = 0 ;
var yset = - msgHeight;
var msgLen = msgList[i].length;
if(msgLen !== 0){
var linesNumber = Math.trunc(msgLen/CHAR_PER_LINE) + 1;
sap.m.MessageToast.show(msgList[i],{
offset: xset.toString() + " " + yset.toString()
});
msgHeight = msgHeight + linesNumber*HEIGHT_PER_LINE + PADDING + BTW_MSG_OFFSET;
}
}
},