Показать строку состояния в Android в приложении PhoneGap (т.е. Предотвратить полноэкранный режим)

У меня есть приложение phonegap 3.0.0. Мое приложение охватывает панель состояния (вещь с часами, информация о приеме и т.д.). Поскольку я не игра в полноэкранном режиме, это нежелательно.

Я считаю, что он работает как приложение "Полный экран".

Я нашел сообщения здесь, в стеке, чтобы сделать противоположное (т.е. сделать приложение в полноэкранном режиме) и сделал обратное тому, что было предложено. Мне интересно, изменилось ли что-то в PhoneGap или, возможно, на CLI PhoneGap, которое я использовал для создания проекта, потому что мое приложение показывает полноэкранный режим.

Я пробовал это:

  public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        super.setIntegerProperty("splashscreen", R.drawable.splash);

        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

        super.loadUrl(Config.getStartUrl(), 10000);
    }

Что явно говорит ему НЕ быть в полноэкранном режиме.... но он по-прежнему отображается во весь экран.

Ответы

Ответ 1

Я понял это.

Плагин Splashscreen должен установить его в полноэкранном режиме. Вызвав метод clearFlags ПОСЛЕ super.loadUrl, как только приложение загрузится, появится строка состояния.

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    super.setIntegerProperty("splashscreen", R.drawable.splash);
    super.loadUrl(Config.getStartUrl(), 10000);

    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

Ответ 2

Нативный код, предложенный выше, будет работать, но более чистый способ состоял бы в том, чтобы убедиться, что не в файле config.xml:

<preference name="fullscreen" value="true" />

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

Ответ 3

внесите это изменение в res/xml/config.xml на eclipse.

<preference
    name="fullscreen"
    value="false" />

Ответ 4

// Hide status bar
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
// Show status bar
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

По умолчанию поведение должно быть НЕ полноэкранным, изменили ли вы свою тему в xml?

Какой-то другой код, который я нашел, на всякий случай:

private void toggleFullscreen(boolean fullscreen)
{
    WindowManager.LayoutParams attrs = getWindow().getAttributes();
    if (fullscreen)
    {
        attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
    }
    else
    {
        attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
    }
    getWindow().setAttributes(attrs);
}