tactiles - ocultar navbar android sin root
Ocultar botones de cambio de tarea de inicio de ICS (6)
Solo me preguntaba cómo ocultar los botones de software de ICS / home / etc programáticamente. Al igual que las aplicaciones de Youtube cuando se reproduce un video. Quiero ocultarlos mientras se reproduce un video, pero criarlos si el usuario toca la pantalla.
Parece que no puedo encontrarlo en ningún lugar de la web ni en la documentación de Google.
Desea SYSTEM_UI_FLAG_HIDE_NAVIGATION .
Esta bandera se agregó a partir de Ice Cream Sandwich, API 14. Anteriormente a 14, se agregó una STATUS_BAR_HIDDEN en Honeycomb, API 11. Anteriormente, los botones de navegación no existían, por lo que los modos de pantalla completa se manejaban en su totalidad por Themes (específicamente Theme.NoTitleBar.Fullscreen ).
Utilizar:
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 );
Esta respuesta puede no estar respondiendo directamente la pregunta. pero lo estoy publicando que puede ayudar a otros a ahorrar tiempo.
Necesitaba ocultar la barra Nav por completo. Incluso cuando el usuario hace clic en la pantalla, debe permanecer oculto.
Nada de lo anterior funcionó para mí.
Escribí una clase después de un par de días de buscar en Google este tema hace mucho tiempo. Termino en esta clase.
No pude probarlo en todas partes, pero funciona en 4. **
NOTA: utilicé esta clase para aplicaciones de propósito especial, que no es para usuarios típicos.
Si oculta la barra de navegación con esta clase, no se volverá a mostrar hasta que reinicie el dispositivo o lo vuelva a mostrar con la misma clase.
Entonces úsalo solo si realmente lo necesitas.
Se llama "Modo Lights Out" cuando hablan de ello en las aplicaciones. No pude encontrar nada relacionado con ICS pero aquí hay un enlace a una discusión de Honeycomb.
donde esta la llamada de API para hacer el modo de apagado en panal
en AndroidManifest.xml agrega esto:
<uses-permission android:name="android.permission.BROADCAST_STICKY"/>
luego puede usar esta función para mostrar y ocultar la barra de navegación de inicio / retorno
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);
}
intente configurar una ventana de pantalla completa con la bandera SYSTEM_UI_FLAG_HIDE_NAVIGATION
pinxue es spot-on ... quieres SYSTEM_UI_FLAG_HIDE_NAVIGATION . Ejemplo:
myView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
Una cosa a tener en cuenta, sin embargo, es que sobre cualquier interacción del usuario (y me refiero a CUALQUIER) se volverá a mostrar la barra de navegación.
Con Honeycomb, lo más cerca que puede llegar es pasar al modo "luces apagadas" (ahora llamado "perfil bajo" ... SYSTEM_UI_FLAG_LOW_PROFILE ). Esto solo hace que los elementos en la barra de navegación sean menos visibles (los pequeños "puntos" que probablemente haya visto). Si desea hacer lo mejor que puede para mantener la compatibilidad con Honeycomb, puede usar la reflexión para usar el "mejor" método:
// 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);