Comment faire une activité en plein écran? Je veux dire sans la barre de notification. Des idées?
606
Comment faire une activité en plein écran? Je veux dire sans la barre de notification. Des idées?
Vous pouvez 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);
}
}
Ou vous pouvez le faire via votre AndroidManifest.xml
fichier:
<activity android:name=".ActivityName"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
Éditer:
Si vous utilisez AppCompatActivity, vous devez ajouter un nouveau thème
<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>
puis l'utiliser.
<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
, vous devez mettrerequestWindowFeature
avantsuper.onCreate
. Sinon, vous obtiendrez:android.util.AndroidRuntimeException: requestFeature() must be called before adding content
Il existe une technique appelée mode plein écran immersif disponible dans KitKat .
Exemple
la source
Si vous ne souhaitez pas utiliser le thème
@android:style/Theme.NoTitleBar.Fullscreen
parce que vous utilisez déjà un thème qui vous appartient, vous pouvez l'utiliserandroid:windowFullscreen
.Dans AndroidManifest.xml:
Dans styles.xml:
la source
Dans le fichier AndroidManifest.xml :
Ou en code Java :
la source
Si vous utilisez AppCompat et ActionBarActivity, utilisez ce
getSupportActionBar().hide();
la source
Attention à
Si vous utilisez une méthode pour définir la barre d'actions comme suit:
Cela provoquera une exception de pointeur nul.
la source
Essayez ceci avec appcompat de
style.xml
. Il prend en charge toutes les plateformes.la source
Il est très facile d'utiliser Android Studio (la version actuelle est la 2.2.2 pour le moment) pour ajouter une activité plein écran.
Voir les étapes:
Terminé!
Vous avez maintenant une activité plein écran facile à réaliser (voir la classe java et la disposition des activités pour savoir comment les choses fonctionnent)!
la source
Pour ceux qui utilisent AppCompact ... style.xml
Mettez ensuite le nom dans votre manifeste ...
la source
Vous devez d'abord définir votre thème d'application avec "NoActionBar" comme ci-dessous
Ajoutez ensuite ces lignes dans votre activité plein écran.
Il masquera la barre d'action / barre d'outils et également la barre d'état dans votre activité en plein écran
la source
AndroidManifest.xml
I. Votre application principale, le thème est Theme.AppCompat.Light.DarkActionBar
Pour masquer ActionBar / StatusBar
style.xml
Pour masquer la barre de navigation du système
II. Le thème de votre application principale est Theme.AppCompat.Light.NoActionBar
Pour masquer ActionBar / StatusBar
style.xml
Pour masquer la barre de navigation du système
Similaire comme
Theme.AppCompat.Light.DarkActionBar
.Démo
la source
merci pour la réponse @Cristian je recevais une erreur
j'ai résolu cela en utilisant
la source
requestWindowFeature(Window.FEATURE_NO_TITLE);
avantsuper.onCreate(savedInstanceState);
?show Full Immersive:
sortir du mode immersif complet:
la source
Je voulais utiliser mon propre thème au lieu d'utiliser @android: style / Theme.NoTitleBar.Fullscreen. Mais cela ne fonctionnait pas, comme certains articles ici l'avaient mentionné, j'ai donc fait quelques ajustements pour le comprendre.
Dans AndroidManifest.xml:
Dans styles.xml:
Remarque: dans mon cas, j'ai dû utiliser
name="windowActionBar"
au lieu d'name="android:windowActionBar"
avant que cela fonctionnait correctement. J'ai donc utilisé les deux pour m'assurer que dans le cas où je devrais porter vers une nouvelle version Android plus tard.la source
Voici un exemple de code. Vous pouvez activer / désactiver les drapeaux pour masquer / afficher des parties spécifiques.
Ensuite, vous réinitialisez à l' état par défaut :
Vous pouvez appeler les fonctions ci-dessus depuis votre
onCreate
:la source
KOTLIN
En suivant le doc google, il existe un moyen simple:
Google Docs
la source
CONSEIL: Utiliser getWindow (). SetLayout () peut bousiller votre affichage plein écran! Notez que la documentation de cette méthode indique:
http://developer.android.com/reference/android/view/Window.html#setLayout%28int,%20int%29
Pour mes besoins, j'ai constaté que je devais utiliser setLayout avec des paramètres absolus pour redimensionner correctement ma fenêtre plein écran. La plupart du temps, cela a bien fonctionné. Il a été appelé par un événement onConfigurationChanged (). Il y a eu cependant un hoquet. Si l'utilisateur quittait l'application, changeait l'orientation et revenait, cela entraînerait le déclenchement de mon code qui comprenait setLayout (). Pendant cette fenêtre de temps de rentrée, ma barre d'état (qui était cachée par le manifeste) devrait réapparaître, mais à tout autre moment setLayout () ne provoquerait pas cela! La solution était d'ajouter un appel setLayout () supplémentaire après celui avec les valeurs dures comme ceci:
La fenêtre a ensuite été correctement redimensionnée et la barre d'état n'est pas réapparue quel que soit l'événement qui a déclenché cela.
la source
la source
Inside styles.xml ...
Cela a fonctionné pour moi. J'espère que cela vous aidera.
la source
Avec kotlin, c'est comme ça que j'ai fait:
Mode immersif
Le mode immersif est destiné aux applications dans lesquelles l'utilisateur interagira fortement avec l'écran. Des exemples sont des jeux, l'affichage d'images dans une galerie ou la lecture de contenu paginé, comme un livre ou des diapositives dans une présentation. Pour cela, ajoutez simplement ces lignes:
Immersif collant
En mode immersif normal, chaque fois qu'un utilisateur glisse depuis un bord, le système se charge de révéler les barres système - votre application ne sera même pas consciente que le geste s'est produit. Donc, si l'utilisateur doit réellement glisser depuis le bord de l'écran dans le cadre de l'expérience de l'application principale, comme lors d'un jeu qui nécessite beaucoup de balayage ou à l'aide d'une application de dessin, vous devez plutôt activer le mode immersif "collant" .
Pour plus d'informations: Activer le mode plein écran
Dans le cas où vous utilisez le clavier, il arrive parfois que StatusBar s'affiche lorsque le clavier apparaît. Dans ce cas, j'ajoute généralement cela à mon style xml
styles.xml
Et aussi cette ligne à mon manifeste
la source
Collez simplement ce code dans la
onCreate()
méthodela source
Ça a marché pour moi.
la source
la source
Après beaucoup de temps sans succès, je suis venu avec ma propre solution qui est similaire à un autre développeur. Donc, si quelqu'un a besoin d'elle, c'est que mon problème était que la barre de navigation du système ne se cachait pas après avoir appelé. Aussi dans mon cas, j'avais besoin de paysage, donc juste au cas où commenter cette ligne et tout ça. Créer d'abord du style
Ceci est mon fichier manifeste
Ceci est mon activité spalsh
}
Et c'est ma principale activité plein écran. onSystemUiVisibilityChange cette méthode est importante, sinon la barre de navigation principale Android après l'appel restera et ne disparaîtra plus. Problème vraiment irritant, mais cette fonction résout ce problème.
classe publique MainActivity étend AppCompatActivity {
}
Voici ma disposition d'écran de démarrage:
J'espère que cela t'aidera
la source
https://developer.android.com/training/system-ui/immersive.html
Activité:
AndroidManifests:
la source
Créez une activité vide et ajoutez deux lignes
onCreate
.la source
Utilisez cette méthode après setContentView dans onCreate () et passez l' objet Window par getWindow () .
Ce code fonctionnera également pour l'écran Notch. Pour vérifier l'encoche en plein écran, vous avez besoin d'Android P, mais si vous avez un téléphone à écran encoche, allez dans Paramètres -> Paramètres d'affichage -> Taux d'affichage de l'application ---> Sélectionnez votre application ---> Il y aura deux options sûres sont affichage et plein écran, veuillez sélectionner le plein écran et exécutez l'application, vous pouvez voir le plein écran dans l'encoche également sans avoir Android Pie
la source
Pour rendre votre activité en plein écran, procédez comme suit:
Cela masquera la barre d'outils et la barre d'état.
Mais dans certains cas, vous souhaiterez peut-être afficher la barre d'état avec un arrière-plan transparent, dans ce cas, procédez comme suit:
Une autre alternative pour masquer la barre d'outils au lieu de
getSupportActionBar().hide()
:<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
Pour les amateurs de kotlin , pourquoi ne pas utiliser les fonctions d'extension:
Pour le premier cas:
Et appelez cela avant
setContentView
:Pour le deuxième:
Et appelez-le avant
setContentView
:la source
Sur Android 10, aucun ne fonctionnait pour moi.
Mais moi qui a parfaitement bien fonctionné (1ère ligne en oncreate):
prendre plaisir :)
la source
Pour afficher le contenu à travers l'encoche ou la zone de découpe. Cela peut aider à partir des documents:
L'essentiel pour moi était cette ligne dans le style d'activité:
Pour moi, je voulais montrer une image en mode immersif. Lorsque je clique dessus, je souhaite que l'interface utilisateur du système (barres d'état et de navigation) s'affiche.
Voici ma solution:
1- Dans l'activité, quelques méthodes pour afficher / masquer l'interface utilisateur du système (barres d'état / de navigation)
2- Assurez-vous que cela dans la vue racine de votre mise en page XML
3- Le style pour l'activité plein écran donnera aux barres d'état / de navigation un arrière-plan semi transparent lorsqu'elles apparaissent:
la source