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:

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.

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.

  1. Utilice Theme.AppCompat.Light.NoActionBar en mis estilos para la actividad que quiero mostrar como pantalla completa.

  2. 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(); 
  • Dibujar sobre la barra de navegación (y otras aplicaciones) en la versión de Android> = 5
  • Haga un SurfaceView más grande que la pantalla (Ajuste de una vista previa de cámara a un SurfaceView más grande que la pantalla)
  • Ignorar el modo de inmersión
  • Transición suave entre la actividad de pantalla completa y una con barra de notificación y barra de acción
  • La navegación en modo inmersivo se vuelve pegajosa después de presionar el volumen o minimizarla
  • La barra de acciones se muestra incorrectamente al volver del modo inmersivo
  • Uso de la actividad de pantalla completa
  • El efecto de sombra superpuesto permanece en NavigationView del cajón de navegación
  • Android pantalla completa una actividad y ocultar la barra de teclas
  • Crear un diálogo transparente encima de la actividad
  • Actividad de pantalla completa en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.