navegador - pantalla completa android studio
Android: haciendo una aplicaciĆ³n de pantalla completa (8)
¿Cuál es el cambio más simple que puedo hacer a una nueva Actividad en blanco, como fue creada por la última versión de Android Studio, para que la aplicación aparezca en pantalla completa?
Quiero crear una aplicación de pantalla completa para Android. Estoy trabajando con Android Studio. Esta publicación sugiere que agregué una línea como ...
android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"
... al archivo AndroidManifest.xml, como se muestra a continuación:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.lexogram.james.blackslate" >
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.lexogram.james.blackslate.MainActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Cuando hago esto, la aplicación se compila pero se bloquea al iniciar. Si elimino la línea, la aplicación funciona bien, pero con la barra de acción y una barra de título, como también lo notaron otros usuarios.
Este es mi primer intento de crear una aplicación para Android, por lo que mi aplicación apenas se modifica con respecto al ejemplo original de Hello World.
EDITAR: creé un nuevo proyecto, e hice este único cambio. Aquí hay un extracto del registro de errores:
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lexogram.james.test/com.lexogram.james.test.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2669)...
NOTA: Estoy probando en un Samsung SGH-T499Y antiguo, ejecutando Android 2.2 (Froyo)
En mi caso todo funciona bien. Ver en logcat. Tal vez logcat muestre algo que pueda ayudarte a resolver tu problema
De todos modos puedes intentar 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);
}
}
Está teniendo este problema porque la actividad que intenta aplicar android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen">
extiende ActionBarActivity, que requiere que se aplique el tema AppCompat.
Amplíe su actividad desde Activity
lugar de desde ActionBarActivity
Es posible que tengas que cambiar tu clase de Java en consecuencia.
Si también desea eliminar la barra de estado, entonces use esto antes de setContentView(layout)
en el método onCreateView
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
Hace poco tuve exactamente el mismo problema y también me beneficié de la siguiente publicación (además de la solución de Rohit5k2 anterior):
En el Paso 3, MainActivity
extiende la Activity
lugar de ActionBarActivity
(como se mencionó en Rohit5k2). También es muy importante NoTitleBar
elementos de tema NoTitleBar
y Fullscreen
en los lugares correctos en el archivo AndroidManifest.xml
(consulte el Paso 4).
Puedes usar los siguientes códigos para tener una página completa en Android
Paso 1: Hacer el tema en la sección styles.xml
<style name="AppTheme.Fullscreen" parent="AppTheme"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style>
Paso 2: Añadir tema en AndroidManifest.xml
<activity android:name=“.Activity” android:theme="@style/AppTheme.Fullscreen"/>
Paso 3: sección de códigos Java
Por ejemplo, puede agregar los siguientes códigos en el método onCreate ().
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
Solo agrega el siguiente atributo a tu tema actual:
<item name="android:windowFullscreen">true</item>
Por ejemplo:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/orange</item>
<item name="colorPrimaryDark">@android:color/holo_orange_dark</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
haz esto en tu archivo de manifiesto en tu etiqueta de actividad
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
En llamada onCreate
requestWindowFeature(Window.FEATURE_NO_TITLE); // for hiding title
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
Respuesta de actualización agregué android:windowIsTranslucent
en caso de que tengas una pantalla blanca al inicio de la actividad
solo crea nuevo estilo en valores / estilos.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<!-- to hide white screen in start of window -->
<item name="android:windowIsTranslucent">true</item>
</style>
</resources>
desde tu AndroidManifest.xml agrega estilo a tu actividad
android:theme="@style/AppTheme"
ser asi
<activity android:name=".Splash"
android:theme="@style/AppTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>