Cambio de la pantalla completa a la no pantalla completa pop / diapositiva
Pasar de pantalla completa a pantalla completa con Android funciona bien. Sin embargo, al regresar de mi actividad de pantalla completa (un reproductor de video de pantalla completa), la actividad se desplaza deslizándose hacia abajo a medida que la barra de estado se anima hacia abajo. Parece que la actividad de reanudación se anima en el modo de pantalla completa, pero con la barra de estado no se está pintando la actividad real como si estuviera falta.
He intentado ensuciar con mi archivo de manifiesto que especifica temas / estilos. He intentado hacerlo mediante programación en onCreate () antes de que se establezca la vista de contenido y varios otros lugares en el ciclo de vida de la actividad:
- Android Studio Teclado Atajo para el modo de pantalla completa
- Haciendo que una aplicación de Android funcione a pantalla completa y paisaje
- Immersive como característica en JB y ICS
- Pantalla completa + barra de acción (Immersive)
- Ventana Popup de Android Pantalla completa
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
Parece que no hay manera de mantener la barra de estado de animar hacia abajo y / o desde la vista de contenido desde el primer dibujo sin la barra de estado allí y luego ajustar a medida que se vuelve a mostrar.
¿Alguno tiene alguna idea sobre esto? No estoy seguro si hay alguna manera de cambiar esto y es sólo un comportamiento de Android.
Gracias por adelantado.
- Los controles de vídeo HTML5 desaparecen en modo de pantalla completa en dispositivos Android
- Android VideoView pantalla completa con controles de barra de navegación superpuestos
- SetSystemUiVisibility (SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) no funciona
- Utilizar SystemUiHider para mantener la barra de navegación oculta
- Cómo mostrar la imagenVer pantalla completa en la imagen¿Haga clic?
- La notificación de pantalla completa solo se muestra como un Heads Up
- Cómo configurar la actividad en modo de pantalla completa en Android?
- La aplicación se bloquea al intentar ocultar la barra de título
Necesita algunos más indicadores: FLAG_LAYOUT_IN_SCREEN y FLAG_LAYOUT_NO_LIMITS.
Echa un vistazo a http://nubinewsblog.blogspot.com/2009/11/smooth-full-screen-transition.html .
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); }
Utilice esto seguramente funcionará
En la vista raíz del diseño de la actividad, añada
Android: paddingTop = "25dp"
En el onCreate
de la actividad, antes de que el setContentView()
agregue
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN); getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
Aquí está la manera perfecta de eliminar este problema:
private void setFullscreen(boolean fullscreen) { WindowManager.LayoutParams attrs = getWindow().getAttributes(); if (fullscreen) { attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN; attrs.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; attrs.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; } else { attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN; attrs.flags &= ~WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; attrs.flags &= ~WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; } getWindow().setAttributes(attrs); }
Llame a esto antes de super.onCreate(...)
dentro de su Actividad.
Pude lograr esto en dos pasos.
-
Utilice
Theme.AppCompat.Light.NoActionBar
en mis estilos para la actividad que quiero mostrar como pantalla completa. -
Utilice el siguiente código en el método
onCreate(Bundle savedInstanceState)
WindowManager.LayoutParams attributes = getWindow (). GetAttributes (); Attributes.flags | = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; GetWindow (). SetAttributes (atributos);
Espero que esto ayude. Codificación feliz
La siguiente es mi solución:
Mostrar la barra de estado del sistema antes de finalizar la pantalla completa Actividad
@Override public void onBackPressed() { getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); mUIHandler.post(new Runnable() { @Override public void run() { MyFullScreenActivity.super.onBackPressed(); } }); }
No sé si esto funcionará para usted, pero funcionó para mí. Establecer actividad de pantalla completa:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.my_screen);
Desactivar pantalla completa:
WindowManager.LayoutParams attrs = getWindow().getAttributes(); attrs.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().setAttributes(attrs); startActivity(new Intent(getBaseContext(),NewActivity.class)); finish();
- Error: Error de ejecución para la tarea ': app: packageDebug'
- Selección de vistas como una barra de calificación