我们遇到的问题是,从 SAP Fiori Launchpad 到我们的应用程序的转换会将焦点设置在主视图的 SearchField 上。
这是一个问题,因为在移动设备上它会触发键盘的激活,从而阻止列表视图条目。
知道如何防止这种行为吗?
直接进入应用程序不会产生这个问题。
这也发生在我们创建的另一个主/明细应用程序中。
跨 Android 和 iOS 设备,在 Safari、Chrome 和 Firefox 上复制。
亲切的问候,
迈克尔
聚会有点晚了,但我们遇到了同样的问题。UsingonAfterRendering
只工作一次,因为该生命周期钩子只被调用一次。要解决此问题,请执行以下操作:
onInit: function () {
// onAfterShow hook gets called every time the view is shown
this.getView().addEventDelegate({onAfterShow: this._afterShow}, this);
},
_afterShow: function () {
jQuery.sap.delayedCall(0, this, function () {
jQuery('input').blur();
});
}
希望有帮助。
这是一种解决方法(目前我能找到的最简单的解决方案),因为我无法重现您的问题:(
onDataLoaded()
或在onAfterRedering()
方法中
//基本上将焦点设置在这样的事情上。或者只是创建任何 SAPUI5 元素setVisible(false)
并设置focus()
this.getList().focus();
更新:抓住搜索getHeaderFooterOptions()
getHeaderFooterOptions: function () {
var _this = this;
var objHdrFtr = {
//sI18NMasterTitle: "YOUR_TITLE",
onRefresh: function (searchField, fnRefreshCompleted) {
_this._searchField = searchField;
}
};
return objHdrFtr;
}
然后
onAfterRendering(){
if(this._searchField){
this._searchField.onAfterRendering = function() {
jQuery(this.getDomRef()).focusout()
};
}
}
让我知道这是否有效!我将删除答案。