Как исправить выравнивание для вертикального и портретного экрана в BlackBerry? - PullRequest
2 голосов
/ 10 ноября 2011

Я хочу создать приложение, которое не будет изменять пользовательский интерфейс, даже если экран будет изменен на книжную или альбомную ориентацию. Как это сделать?

Ответы [ 2 ]

8 голосов
/ 10 ноября 2011

Я сделал статический метод в одном из моих классов библиотеки:

public static void disableOrientationChange()
{
    // force app to use only portrait mode
    int directions = Display.DIRECTION_NORTH;
    UiEngineInstance engineInstance = Ui.getUiEngineInstance();
    if (engineInstance != null)
    {
        engineInstance.setAcceptableDirections(directions);
    }
}

Хитрость заключается в том, что этот код работает только для экранов, созданных после его запуска. Таким образом, вы должны запустить код, прежде чем показывать свой первый экран.

Я вызываю этот метод из моего Application.main(String args) метода, непосредственно перед вызовом enterEventDispatcher().

public static void main(String[] args)
{
    MyApp app = new MyApp();

    /*
     * BlackBerry OS 5.0.0
     * Disable screen orientation changes
     */
    ScreenUtils.disableOrientationChange();

    // enters the event processing loop thread if required
    if (!app.isHandlingEvents())
    {
        app.enterEventDispatcher();
    }
}
1 голос
/ 10 ноября 2011

вы можете использовать этот код для установки ориентации на портрет.После этого, даже если устройство удерживается в горизонтальной ориентации, ориентация не изменится.

Ui.getUiEngineInstance().setAcceptableDirections(Display.DIRECTION_PORTRAIT);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...