Показать строку состояния в 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);
}