¿Cómo hago una actividad a pantalla completa? Quiero decir sin la barra de notificaciones. ¿Algunas ideas?
606
¿Cómo hago una actividad a pantalla completa? Quiero decir sin la barra de notificaciones. ¿Algunas ideas?
Puedes hacerlo programáticamente:
public class ActivityName extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// remove title
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
}
}
O puede hacerlo a través de su AndroidManifest.xml
archivo:
<activity android:name=".ActivityName"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
Editar:
Si está utilizando AppCompatActivity, entonces necesita agregar un nuevo tema
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
y luego úsalo.
<activity android:name=".ActivityName"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"/>
@android:style/Theme.Holo.Light.NoActionBar.Fullscreen
AppCompatActivity
, debe ponerrequestWindowFeature
antessuper.onCreate
. De lo contrario, obtendrá:android.util.AndroidRuntimeException: requestFeature() must be called before adding content
Hay una técnica llamada Modo inmersivo de pantalla completa disponible en KitKat .
Ejemplo
fuente
Si no desea usar el tema
@android:style/Theme.NoTitleBar.Fullscreen
porque ya está usando un tema propio, puede usarloandroid:windowFullscreen
.En AndroidManifest.xml:
En styles.xml:
fuente
En el archivo AndroidManifest.xml :
O en código Java :
fuente
Si estás usando AppCompat y ActionBarActivity, entonces usa esto
getSupportActionBar().hide();
fuente
Ten cuidado con
Si está utilizando algún método para establecer la barra de acción de la siguiente manera:
Causará una excepción de puntero nulo.
fuente
Prueba esto con appcompat de
style.xml
. Proporciona soporte para todas las plataformas.fuente
Usar Android Studio (la versión actual es 2.2.2 en este momento) es muy fácil de agregar una actividad de pantalla completa.
Mira los pasos:
¡Hecho!
¡Ahora tiene una actividad de pantalla completa hecha fácilmente (vea la clase de Java y el diseño de la actividad para saber cómo funcionan las cosas)!
fuente
Para aquellos que usan AppCompact ... style.xml
Luego pon el nombre en tu manifiesto ...
fuente
Primero debes configurar el tema de tu aplicación con "NoActionBar" como a continuación
Luego agregue estas líneas en su actividad de pantalla completa.
Ocultará la barra de acción / barra de herramientas y también la barra de estado en su actividad de pantalla completa
fuente
AndroidManifest.xml
I. Su aplicación principal, el tema es Theme.AppCompat.Light.DarkActionBar
Para ocultar ActionBar / StatusBar
style.xml
Para ocultar la barra de navegación del sistema
II El tema principal de su aplicación es Theme.AppCompat.Light.NoActionBar
Para ocultar ActionBar / StatusBar
style.xml
Para ocultar la barra de navegación del sistema
Similar como
Theme.AppCompat.Light.DarkActionBar
.Manifestación
fuente
gracias por responder @Cristian recibí un error
resolví esto usando
fuente
requestWindowFeature(Window.FEATURE_NO_TITLE);
antessuper.onCreate(savedInstanceState);
?mostrar inmersivo completo:
salir del modo inmersivo completo:
fuente
Quería usar mi propio tema en lugar de usar @android: style / Theme.NoTitleBar.Fullscreen. Pero no estaba funcionando como lo había mencionado alguna publicación aquí, así que hice algunos ajustes para resolverlo.
En AndroidManifest.xml:
En styles.xml:
Nota: en mi caso tuve que usar en
name="windowActionBar"
lugar dename="android:windowActionBar"
antes de que funcionara correctamente. Así que solo utilicé ambos para asegurarme en caso de que necesite portar a una nueva versión de Android más tarde.fuente
Aquí hay un código de ejemplo. Puede encender / apagar banderas para ocultar / mostrar partes específicas.
Luego, restablece el estado predeterminado :
Puede llamar a las funciones anteriores desde su
onCreate
:fuente
KOTLIN
Siguiendo el documento de google, hay una manera fácil:
Google docs
fuente
CONSEJO: ¡El uso de getWindow (). SetLayout () puede arruinar su visualización de pantalla completa! Tenga en cuenta que la documentación para este método dice:
http://developer.android.com/reference/android/view/Window.html#setLayout%28int,%20int%29
Para mis propósitos, descubrí que tenía que usar setLayout con parámetros absolutos para cambiar el tamaño de mi ventana de pantalla completa correctamente. La mayoría de las veces, esto funcionó bien. Fue invocado por un evento onConfigurationChanged (). Hubo un hipo, sin embargo. Si el usuario salió de la aplicación, cambió la orientación y volvió a ingresar, esto conduciría a desactivar mi código que incluía setLayout (). Durante esta ventana de tiempo de reingreso, mi barra de estado (que estaba oculta por el manifiesto) volvería a aparecer, ¡pero en cualquier otro momento setLayout () no causaría esto! La solución fue agregar una llamada setLayout () adicional después de la que tiene los valores rígidos de la siguiente manera:
La ventana se redimensionó correctamente y la barra de estado no volvió a aparecer independientemente del evento que desencadenó esto.
fuente
fuente
Inside styles.xml ...
Esto funcionó para mí. Espero que te ayude.
fuente
Con Kotlin, así es como lo hice:
Modo inmersivo
El modo inmersivo está destinado a aplicaciones en las que el usuario interactuará fuertemente con la pantalla. Ejemplos son juegos, ver imágenes en una galería o leer contenido paginado, como un libro o diapositivas en una presentación. Para esto, solo agregue estas líneas:
Inmersivo pegajoso
En el modo inmersivo normal, cada vez que un usuario se desliza desde un borde, el sistema se encarga de revelar las barras del sistema; su aplicación ni siquiera se dará cuenta de que ocurrió el gesto. Por lo tanto, si el usuario realmente necesita deslizarse desde el borde de la pantalla como parte de la experiencia de la aplicación principal, como cuando juega un juego que requiere mucho deslizamiento o usa una aplicación de dibujo, debe habilitar el modo inmersivo "adhesivo" .
Para más información: habilitar el modo de pantalla completa
En caso de que esté usando el teclado, a veces sucede que StatusBar aparece cuando aparece el teclado. En ese caso, generalmente agrego esto a mi estilo xml
styles.xml
Y también esta línea a mi manifiesto
fuente
Solo pega este código en el
onCreate()
métodofuente
Funcionó para mi.
fuente
fuente
Después de mucho tiempo sin éxito, llegué con mi propia solución, que es bastante similar a la de otro desarrollador. Entonces, si alguien la necesita, mi problema era que la barra de navegación del sistema no se ocultaba después de llamar. También en mi caso necesitaba paisaje, así que por si acaso comentar esa línea y todo eso. Antes que nada crear estilo
Este es mi archivo de manifiesto
Esta es mi actividad spalsh
}
Y esta es mi actividad principal a pantalla completa. onSystemUiVisibilityChange este método es muy importante; de lo contrario, la barra de navegación principal de Android después de llamar permanecerá y no desaparecerá más. Problema realmente irritante, pero esta función resuelve ese problema.
clase pública MainActivity extiende AppCompatActivity {
}
Este es mi diseño de pantalla de bienvenida:
Espero que esto ayude
fuente
https://developer.android.com/training/system-ui/immersive.html
Actividad :
Manifiestos de Android:
fuente
Crea una actividad vacía y agrega dos líneas
onCreate
.fuente
Use este método después de setContentView en onCreate () y pase el objeto Window por getWindow () .
Este código también funcionará para la pantalla de muesca. Para verificar la pantalla completa de la muesca, necesita Android P, pero si tiene un teléfono con pantalla de muesca, vaya a configuración -> Configuración de pantalla -> relación de visualización de la aplicación ---> seleccione su aplicación ---> habrá dos opciones seguras pantalla y pantalla completa, seleccione la pantalla completa y ejecute la aplicación, puede ver la pantalla completa en la muesca también sin tener Android Pie
fuente
Para hacer su actividad a pantalla completa, haga esto:
Esto ocultará la barra de herramientas y la barra de estado.
Pero en algunos casos, es posible que desee mostrar la barra de estado con un fondo transparente, en ese caso, haga lo siguiente:
Algunas otras alternativas para ocultar la barra de herramientas en lugar de
getSupportActionBar().hide()
:<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
Para los amantes de kotlin , ¿por qué no utilizar las funciones de extensión?
Para el primer caso:
Y llame a esto antes
setContentView
:Para el segundo:
Y llámalo antes
setContentView
:fuente
En Android 10, ninguno funcionó para mí.
Pero eso funcionó perfectamente bien (primera línea en oncreate):
disfruta :)
fuente
Para mostrar contenido a través de la muesca o el área recortada. Esto puede ayudar de los documentos:
Lo clave para mí fue esta línea en el estilo de actividad:
Para mí, quería mostrar una imagen en modo inmersivo. Cuando hago clic en él, quiero que aparezca la IU del sistema (barras de estado y navegación).
Aquí está mi solución:
1- En la Actividad, algunos métodos para mostrar / ocultar la IU del sistema (barras de estado / navegación)
2- Asegúrese de esto en la vista raíz de su diseño xml
3- El estilo para la actividad de pantalla completa le dará a las barras de estado / navegación un fondo semitransparente cuando aparezcan:
fuente