navegacion - ¿Hay alguna manera de ocultar el sistema/barra de navegación en ICS de Android?
ocultar action bar android studio (12)
Actualización: existe una solución alternativa que se puede utilizar para tales casos (configuración manual de la aplicación para el cliente). De hecho, la barra de navegación no se puede eliminar dentro del marco dado.
Sin embargo, existe una solución para ocultar la barra de navegación si es una opción para usted rootear el dispositivo . Aquí es cómo:
En HideBar hay una opción para ejecutar en modo ''Kiosk'', en el que no hay forma de volver a mostrar la barra de navegación. No hace falta decir que realmente hay que tener cuidado con esto.
Riesgos involucrados:
bricking el dispositivo
equivocarse en la instalación de BusyBox, lo que podría dificultar un poco las cosas, aunque es muy poco probable que cause pérdida de información.
entrar en un punto muerto en el que no puedes salir de tu aplicación. Por ejemplo, si 1 su GUI no proporciona una opción de cierre, 2 su aplicación se inicia automáticamente en el inicio, 3 HideBar no permite ninguna forma de volver a mostrar la barra de navegación y 4 HideBar oculta la barra de navegación en el inicio. Sin embargo Esto se puede superar simplemente deteniendo / desinstalando su aplicación de adb.
Aquí hay otras preguntas idénticas:
Me gustaría extender la discusión sobre la ocultación del sistema / barra de navegación en la parte inferior de la pantalla en los dispositivos de tableta con Android Ice Cream Sandwich (4.0 y versiones superiores).
Ya hay un hilo ( ¿Hay alguna forma de ocultar la barra del sistema en Android 3.0? Es un dispositivo interno y estoy administrando la navegación ) sobre cómo ocultar la barra en los dispositivos Honeycomb. Mis clientes, sin embargo, usarán los dispositivos Ice Cream Sandwich más nuevos y están muy interesados en ocultar la barra en la parte inferior de la pantalla. Su aplicación no es para el uso regular del consumidor y es muy importante para ellos controlar toda la pantalla para brindar su experiencia. ¿Qué tan posible es ocultar esta barra, o al menos, anular el comportamiento de todos los botones, sin enraizar los dispositivos o reescribir su firmware?
Aunque es una solución pirateada, creo que merece atención porque no requiere el rooting del dispositivo: getWindow().getDecorView().setSystemUiVisibility(8);
.
EDITAR: A partir de 4.4 (19) puede usar lo siguiente para habilitar lo que se llama "MODO IMMERSIVO". Se introdujo para el vrtoolkit Cardboard de Google, pero se puede utilizar en general.
setSystemUiVisibility(View.SYSTEM_UI_FLAG_IMMERSIVE)
developer.android.com/training/system-ui/immersive.html
Por mis esfuerzos, parece que: setSystemUiVisibility (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) no funciona en tabletas.
Funciona en teléfonos inteligentes (probado con un Nexus 4 Mako), pero reaparecerá en un evento de toque / clic. Esto también parece capturar el foco en la barra, lo que obliga a hacer clic dos veces para recuperar el foco en la vista.
He estado tratando de encontrar una manera de atrapar el evento que realmente vuelve a mostrar la barra. Sin suerte.
Siendo terco, voy a descargar el código del sistema operativo Android, encender el depurador de eclipse y salir a la caza. Esto no es un error: la barra de navegación es crucial para el ciclo de vida de la aplicación.
He visto aplicaciones que lo hacen (juegos y cosas así) así que hay una manera sin rooting.
No puedes ocultarlo a menos que hayas rooteado el dispositivo. Pero, por supuesto, existe una solución alternativa que puede no coincidir con sus requisitos, pero varias aplicaciones bien conocidas en el mercado actualmente utilizan esta estrategia para lograr esta función de barra de menú deshabilitada para sus aplicaciones.
- Otorgar privilegio de administrador.
- Configure la contraseña y bloquee el dispositivo utilizando la api de perfil de administrador del dispositivo
- A continuación, cargue las interfaces de usuario en la parte superior de la pantalla de bloqueo nativa. (Por supuesto, esto mostrará la pantalla de bloqueo de fondo cada vez que ocurra una transición entre actividades. Pero si la lógica está bien organizada, entonces el usuario lo notificará sin problemas y será menor)
- Cuando necesite volver a habilitar, restablezca la contraseña a "" usando resetPassword ("", 0) del objeto del administrador de políticas del dispositivo.
Para ocultar la barra de estado y la barra de navegación en el uso de Android ics
LinearLayout layout = (LinearLayout)findViewById(R.id.layout);
layout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
Puede ocultar la barra de navegación en Android 4.0 y superior utilizando el indicador SYSTEM_UI_FLAG_HIDE_NAVIGATION. Este fragmento de código oculta tanto la barra de navegación como la barra de estado:
View decorView = getWindow().getDecorView();
// Hide both the navigation bar and the status bar.
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
// a general rule, you should design your app to hide the status bar whenever you
// hide the navigation bar.
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions
Vea lo siguiente: Ocultar la barra de navegación
Si su dispositivo está rooteado, este código le ayudará a ocultar la barra del sistema en ICS (lo probé en el Samsung Galaxy Tab 2 y funciona de manera excelente):
ArrayList<String> list = new ArrayList<String>();
Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
list.add(envName + "=" + env.get(envName));
}
// Array containing the environment to start the new process in
String[] envp = (String[]) list.toArray(new String[0]);
String hidingCommand = "while [ true ]/n" + "do/n" + "killall com.android.systemui/n" + "done/n";
Runtime.getRuntime().exec(new String[] { "su", "-c", command }, envp);
myContext.sendBroadcast(new Intent("com.mycompany.myapp.ACTION_BARHIDDEN"));
Usar el siguiente código es una forma de hacerlo para ocultar la navegación
getWindow().getDecorView()
.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
Pero el problema con lo anterior es que se vuelve visible tan pronto como el usuario toca la pantalla.
En Android Kitkat hay una característica llamada IMMERSIVE
que oculta la barra de notificaciones y la navegación. No se muestra incluso si el usuario interactúa con la pantalla. Sin embargo, el usuario puede hacerlo visible al deslizarlo desde la parte superior de la pantalla hasta la parte inferior. A continuación se muestra el código para lograrlo.
//Initializew this in onCreate()
View mDecorView = getWindow().getDecorView();
//Then call this function
private void hideSystemUI() {
mDecorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}
Sin embargo, en mi caso, nunca quise que la barra de navegación y notificación estuviera visible, incluso si el usuario pasaba de la parte superior de la pantalla a la parte inferior. Lo intenté y pude lograrlo parcialmente. Lo que hice fue implementar un CountDownTimer
que llamaría hideSystemUI()
cada segundo aproximadamente. Sé que no es la mejor manera de hacerlo. Pero no conseguí ninguna otra solución para hacerlo.
Si alguien recibe alguno, hágamelo saber sobre cómo ocultar permanentemente la barra de navegación y notificación :) Espero que esta respuesta ayude a alguien en el futuro :)
Mira this video para comprender mejor esta característica.
coloque este código en su etiqueta de aplicación en el archivo de manifiesto para ocultar la barra de pestañas predeterminada
<Application
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" <!--
other parameters of application tag-->
>
y luego haga un diseño lineal o relativo y colóquelo en el diseño de su actividad.
en dispositivos rooteados, uso el siguiente comando adb
adb shell pm disable com.android.systemui
Para ocultar la barra de navegación de forma permanente. Para mostrarlo de nuevo, corre
adb shell pm enable com.android.systemui
hasta ahora está funcionando bien para mí
puede ser si el comportamiento del botón es suficiente para que pueda echar un vistazo en mi respuesta here
Aún tiene la barra pero no puede salir de la aplicación sin reiniciar la tableta
Echa un vistazo a SYSTEM_UI_FLAG_HIDE_NAVIGATION
, esta bandera oculta la barra de navegación hasta que el usuario interactúa con el dispositivo. Fue introducido en Android 4.0. Puedes habilitar esta bandera por ejemplo como esta:
getWindow().getDecorView()
.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
Tenga en cuenta que la navegación no volverá a desaparecer automáticamente, debe configurarlo cada vez que el usuario interactúe con el dispositivo.
Alternativamente, puede hacer que la navegación sea menos intrusiva utilizando SYSTEM_UI_FLAG_LOW_PROFILE
, esto hace que los botones se conviertan en pequeños puntos (por ejemplo, como la aplicación de la cámara) .