1

我们遇到的问题是,从 SAP Fiori Launchpad 到我们的应用程序的转换会将焦点设置在主视图的 SearchField 上。

UI5 搜索字段

这是一个问题,因为在移动设备上它会触发键盘的激活,从而阻止列表视图条目。

知道如何防止这种行为吗?

直接进入应用程序不会产生这个问题。

这也发生在我们创建的另一个主/明细应用程序中。

跨 Android 和 iOS 设备,在 Safari、Chrome 和 Firefox 上复制。

亲切的问候,

迈克尔

4

2 回答 2

1

聚会有点晚了,但我们遇到了同样的问题。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();
    });
}

希望有帮助。

于 2016-12-23T10:19:37.997 回答
0

这是一种解决方法(目前我能找到的最简单的解决方案),因为我无法重现您的问题:(

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()
        };
    }
}

让我知道这是否有效!我将删除答案。

于 2015-05-05T15:38:47.563 回答