2015-05-04 29 views
1

我們遇到的問題是,從SAP Fiori Launchpad到我們的應用程序的轉換將焦點置於Master視圖的SearchField上。從Launchpad到應用程序集的過渡集中在SearchField上

UI5 SearchField

這是一個問題,因爲在移動設備上它觸發鍵盤阻斷列表視圖中的條目激活。

任何想法如何防止這種行爲?

直接進入應用程序不會產生這個問題。

這也發生在我們創建的另一個主/明細應用程序中。

在Android和iOS設備上,在Safari,Chrome和Firefox上覆制。

親切的問候,

邁克爾

+0

您能否提供觸發從啓動板到您的應用程序的轉換的代碼? –

+0

你好。 Launchpad使用Launchpad Designer和一大堆SAP事務處理進行設置,這是一個非常複雜的過程。 SAP如何使Launchpad磁貼上的點擊與應用程序之間的連接完全脫離我的手。因此我無法提供任何代碼,這是SAP的一件事。但有人告訴我,sapui5標籤將成爲官方SAP開發渠道,因此我希望他們看到我的問題。 – michaelklopf

+0

我還沒有看到上述行爲是許多主細節模式應用程序的開發人員。什麼是SAPUI5版本? SAP的名稱提供了應用程序? –

回答

0

這是一種解決方法(我能找到截至目前最簡單的解決方案) 因爲我無法重現您的問題:(

onDataLoaded()onAfterRedering()方法

//基本上把重點放在這樣的東西上..或者只是創建任何SAPUI5元素和setVisible(false)並設置focus()

this.getList().focus(); 

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

讓我知道這是否正常工作與否搜索的漁獲持有! 我將刪除答案。

+0

我接着說:onAfterRendering觀察它:函數(){ \t \t $(函數(){ \t \t \t $( 「主 - masterViewSearch」)事件的內容() ; \t \t}); \t}'這一次得手,但不會再次,這完全是混淆不要刪除你的答案,其他人可以建立在它 – michaelklopf

+0

ID可以不斷變化.. –

+0

它最好不要,但它還沒有,因爲我們必須放棄this.byId(),它在桌面上找到了組件,但是不能用於移動設備。因此我們使用全名。 – michaelklopf

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

希望有所幫助。

+0

您可以使用searchField控件您好z00bs,我不是能夠在此刻驗證你的答案,但它是有道理的。如果我正確記得它,我們用列表中的.focus()來解決它。那麼我應該把它標記爲正確答案嗎? – michaelklopf