我正在为Blackberry创建一个应用程序。在大多数情况下,使用此应用程序时,它需要处于Display.DIRECTION_EAST方向。但是有一些设置需要在此应用程序第一次运行时完成。设置包括一个对话框,弹出一个需要填写的文本字段,一个输入按钮,一旦完成就按下。在横向模式下,输入按钮会从屏幕滚动,并且不需要向下滚动对话框按Enter键。因此,当屏幕上显示此对话框时,我想强制设备返回Display.DIRECTION_NORTH模式。目前我正在使用这个:
int direction = Display.DIRECTION_NORTH;
Ui.getUiEngineInstance().setAcceptableDirections(direction);
但我的问题是这个命令在调用时实际上并没有改变方向。它的作用是在您以某种方式倾斜设备后允许方向改变。在此之后是否还有其他命令会强制它立即更改?或者可能是一种不同的机制来设置方向,而不是等待加速计改变?
答案 0 :(得分:3)
您可以在显示屏幕之前调用setAcceptableDirections()
代码,而不是显示弹出框。
我已经看到了对MainScreen进行子类化的建议,并将代码添加到构造函数中。根据我的经验,我更喜欢将代码添加到应用程序的main()
方法。
我的完整代码可以在这个相关问题的答案中找到:How to fix alignment for vertical and portrait screen in BlackBerry?
答案 1 :(得分:2)
如果您已经找到了,但它对您没有帮助,请告诉我。
答案 2 :(得分:2)
我也一样。这是(或者至少我不知道他们是否已经解决了这个问题)一个已知的RIM问题。请检查此BB support forum thread。
On'2008-12-10 09:41 PM'MSohm
说:
目前,无论开发人员指定了什么模式,应用程序都会从BlackBerry Storm的当前方向开始。一旦用户将设备倾斜到正确的方向,应用程序将改变其方向,然后将其锁定到位。
基本上,推荐是显示一个PopupSceen,它要求在您调用setAcceptableDirections
后将设备倾斜到您想要的方向。一旦用户做了你要求你隐藏PopupScreen的内容。您还可以检查设备是否正确定向(如果已经正常,则无需显示PopupScreen)。