2017-04-20 58 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上。 –