Quel est le changement le plus simple que je puisse apporter à une nouvelle activité vide, créée par la dernière version d'Android Studio, pour que l'application apparaisse en plein écran?
Je souhaite créer une application Android en plein écran. Je travaille avec Android Studio . Cet article suggère d'ajouter une ligne telle que ...
Android:theme="@Android:style/Theme.Holo.Light.NoActionBar.Fullscreen"
... dans le fichier AndroidManifest.xml, comme indiqué ci-dessous:
<?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>
Lorsque je fais cela, l'application se compile mais se bloque au lancement. Si je supprime la ligne, l'application fonctionne correctement, mais avec la barre d'action et une barre de titre, comme le notent également d'autres utilisateurs.
Il s'agit de ma première tentative de création d'une application Android. Mon application est donc à peine modifiée par rapport à l'exemple d'origine de Hello World.
EDIT: J’ai créé un nouveau projet et n’y ai apporté que celui-ci. Voici un extrait du journal des erreurs:
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)...
REMARQUE: je teste un vieux Samsung SGH-T499Y sous Android 2.2 (Froyo).
Vous rencontrez ce problème car l'activité à laquelle vous essayez d'appliquer le Android:theme="@Android:style/Theme.Holo.Light.NoActionBar.Fullscreen">
est une extension d'ActionBarActivity qui nécessite l'application du thème AppCompat.
Étendez votre activité de Activity
plutôt que de ActionBarActivity
Vous devrez peut-être modifier votre classe Java en conséquence.
Si vous souhaitez également supprimer la barre d'état, utilisez ceci avant setContentView(layout)
dans la méthode onCreateView
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
Ajoutez simplement l'attribut suivant à votre thème actuel:
<item name="Android:windowFullscreen">true</item>
Par exemple:
<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>
il suffit de le faire dans votre fichier manifeste dans votre balise d'activité
Android:theme="@style/Theme.AppCompat.Light.NoActionBar"
dans mon cas tout fonctionne bien. Voir dans logcat. Peut-être que logcat montre quelque chose qui peut vous aider à résoudre votre problème
Quoi qu'il en soit, vous pouvez essayer de le faire par programme:
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);
}
}
Réponse mise à jour J'ai ajouté Android:windowIsTranslucent
si vous avez un écran blanc au début de l'activité.
il suffit de créer un nouveau style dans values / styles.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>
depuis votre AndroidManifest.xml, ajoutez du style à votre activité
Android:theme="@style/AppTheme"
être comme ça
<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>
Dans l'appel onCreate
requestWindowFeature(Window.FEATURE_NO_TITLE); // for hiding title
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
J'ai récemment eu exactement le même problème et j'ai également bénéficié du post suivant (en plus de la solution de Rohit5k2 ci-dessus):
À l'étape 3, MainActivity
étend Activity
au lieu de ActionBarActivity
(comme Rohit5k2 l'a mentionné). Il est également très important de placer les éléments de thème NoTitleBar
et Fullscreen
aux endroits appropriés dans le fichier AndroidManifest.xml
(reportez-vous à l'étape 4).
Vous pouvez utiliser les codes suivants pour avoir une page complète dans Android
Étape 1: Créer un thème dans la section styles.xml
<style name="AppTheme.Fullscreen" parent="AppTheme">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
Étape 2: Ajouter un thème sur AndroidManifest.xml
<activity
Android:name=“.Activity”
Android:theme="@style/AppTheme.Fullscreen"/>
Étape 3: Section des codes Java
Par exemple, vous pouvez ajouter les codes suivants à la méthode onCreate ().
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);