1

SAP Fiori Launchpad からアプリケーションへの移行によって、Master ビューの SearchField にフォーカスが設定されるという問題があります。

UI5 検索フィールド

モバイルデバイスでは、リストビューのエントリをブロックするキーボードのアクティブ化をトリガーするため、これは問題です。

その動作を防ぐ方法はありますか?

アプリケーションに直接入力しても、この問題は発生しません。

これは、作成した別のマスター/詳細アプリケーションでも発生しています。

Android および iOS デバイス全体で、Safari、Chrome、および Firefox に複製されます。

敬具、

マイケル

4

2 に答える 2

1

パーティーには少し遅れましたが、同じ問題がありました。onAfterRenderingそのライフサイクルフックは一度しか呼び出されないため、使用は一度しか機能しません。この問題を解決するには、次の手順を実行します。

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 に答える