2017-04-20 59 views
1

我有一個CodenameOne應用程序,我部署到iTunes的App Store和谷歌玩,現在我希望把出UWP版本。如何在codenameOne UWP應用上啓用「後退」按鈕?

在iOS上,「後退」按鈕出現在每個表單,我可以走「背」的頂部,但在Android上它不存在,因爲我們有一個硬件後退按鈕。我第一次在UWP上構建並運行我的應用程序,並且在iOS標題欄中沒有後退按鈕,並且UWP容器在應用程序本身之外沒有明顯的「硬件」後退按鈕。

我可以使iOS的「後退」在UWP按鈕建立不啓用在所有平臺(如Android在硬件按鈕處理「後退」優雅的)?在UWP應用程序中有沒有另外一種方法來優雅地啓用「後退」功能?我對Windows UWP應用程序開發完全陌生。

+0

請參考有關[後退按鈕]的類似的問題(http://stackoverflow.com/questions/30597585/windows-10-uap-back-button)。 –

+0

@Jayden,謝謝,這看起來像一個很好的資源,如果我需要進入本地UWP的應用程序,但這個問題是非常具體的代號一個框架,而不是一般的UWP發展。儘管我可以選擇在框架中爲UWP編寫本機代碼,但我仍希望儘可能保留在基於Java的Codename One框架中。 –

回答

0

嘗試在你的主題設置showBackCommandOnTitleBool主題定爲「true」。這應該迫使它出現。

+0

是否有可能檢測UWP平臺並將代碼中的常量設置爲僅用於UWP?我不想在onrond上的任務欄上找到它們冗餘的按鈕。 –

0

代碼:

Windows.UI.Core.SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = Windows.UI.Core.AppViewBackButtonVisibility.Visible;

+0

感謝您的UWP特定答案,但我實際上正在尋找基於Java的CodenameOne框架如何啓用此功能。 –

2
  1. 我增加了一個問題,以改善UWP檢測硬件後退按鈕的存在。 https://github.com/codenameone/CodenameOne/issues/2099

  2. 只能在UWP中通過在主題編輯器中選擇「OVerride in Platform」來覆蓋showBackCommandOnTitleBool。然後選擇「Windows Phone 7」(至少我認爲這應該工作...我們需要將UWP添加到此列表中)。然後在那裏設置主題常量。

Override in platform

+0

感謝您的指針@steve,我有這個老GUI構建器(不知道這是在新的設計不同),唯一的挑戰是,它使得整個主題獨特UWP,所以剩下的任何更改的樣式或主題將需要手動複製到主題的UWP版本。這是進行多平臺設置的「正確」方式,但不幸的是,它不是非常精細。 –

+1

我忽略了提及你也可以從代碼中設置主題常量。使用'UIManager.getInstance()。addThemeProps(myHashtable)'。只需用'Boolean.TRUE'值將'@ showBackCommandOnTitleBool'鍵添加到散列表。使用'Display.getPlatformName()'(「win」)來測試你是否在windows上。 –