Подтвердить что ты не робот

Скрыть кнопки переключателей домашней задачи ICS

Просто интересно, как программно скрыть программные кнопки ICS назад /home/etc. Так же, как и приложения Youtube при воспроизведении видео. Я хочу скрыть их во время воспроизведения видео, но вывести их, если пользователь закроет экран.

Я не могу найти его нигде в Интернете или в документации Google.

4b9b3361

Ответ 1

попробуйте установить полноэкранное окно с флагом SYSTEM_UI_FLAG_HIDE_NAVIGATION

Ответ 2

pinxue находится на месте... вы хотите SYSTEM_UI_FLAG_HIDE_NAVIGATION. Пример:

myView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

Следует отметить, однако, что при любом (и я имею в виду ЛЮБОЕ) взаимодействие с пользователем панель навигации будет переименована.

С Honeycomb ближе всего вы можете перейти в режим "выключить свет" (теперь он называется "низкий профиль"... SYSTEM_UI_FLAG_LOW_PROFILE). Это просто делает элементы на панели навигации менее заметными (маленькие "точки", которые вы, вероятно, видели). Если вы хотите сделать все возможное, чтобы поддерживать обратную совместимость с Honeycomb, вы можете использовать отражение, чтобы использовать "лучший" метод:

// Ask the System Bar to hide
int whichHiddenStatusToUse = android.view.View.STATUS_BAR_HIDDEN;
try {
    // if this next line doesn't thrown an exception then we are on ICS or  
    // above, so we can use the new field.
    whichHiddenStatusToUse = View.class.getDeclaredField("SYSTEM_UI_FLAG_HIDE_NAVIGATION").getInt(mDrawingSurface);
} catch (Exception ex) {
}
// now lets actually ask one of our views to request the decreased visibility
myView.setSystemUiVisibility(whichHiddenStatusToUse);

Ответ 3

Вы хотите SYSTEM_UI_FLAG_HIDE_NAVIGATION.

Этот флаг был добавлен как Ice Cream Sandwich, API 14. Ранее в 14 был добавлен флаг STATUS_BAR_HIDDEN в Honeycomb, API 11. Ранее мягких навигационных кнопок не было, поэтому полноэкранные режимы полностью обрабатывались Themes (в частности Theme.NoTitleBar.Fullscreen).

Использование:

if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH )
    mBaseLayout.setSystemUiVisibility( View.SYSTEM_UI_FLAG_HIDE_NAVIGATION );
else if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB )
    mBaseLayout.setSystemUiVisibility( View.STATUS_BAR_HIDDEN );

Ответ 4

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

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

Ничто из этого не помогло мне.

Я написал класс после нескольких дней похода в эту тему давно. Я заканчиваю этот класс.

UtilsTaskBar.java

Я не мог проверить его везде, но он работает на 4. **

ПРИМЕЧАНИЕ.. Я использовал этот класс для специальных приложений, что не для обычных пользователей.

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

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

Ответ 5

в AndroidManifest.xml добавьте это:

<uses-permission android:name="android.permission.BROADCAST_STICKY"/>

то вы можете использовать эту функцию для отображения и скрытия панели навигации home/return

private void changeSystemBarVisibilty(boolean show)
{
    Context context = getApplicationContext();
    final Intent intent = new Intent("android.intent.action.SYSTEM_BAR_VISIBILITY");
    intent.putExtra("show", show);
    context.sendStickyBroadcast(intent);
}