- Syntaxe :
<activity android:allowEmbedded=["true" | "false"] android:allowTaskReparenting=["true" | "false"] android:alwaysRetainTaskState=["true" | "false"] android:autoRemoveFromRecents=["true" | "false"] android:banner="drawable resource" android:clearTaskOnLaunch=["true" | "false"] android:colorMode=[ "hdr" | "wideColorGamut"] android:configChanges=["mcc", "mnc", "locale", "touchscreen", "keyboard", "keyboardHidden", "navigation", "screenLayout", "fontScale", "uiMode", "orientation", "density", "screenSize", "smallestScreenSize"] android:directBootAware=["true" | "false"] android:documentLaunchMode=["intoExisting" | "always" | "none" | "never"] android:enabled=["true" | "false"] android:excludeFromRecents=["true" | "false"] android:exported=["true" | "false"] android:finishOnTaskLaunch=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:immersive=["true" | "false"] android:label="string resource" android:launchMode=["standard" | "singleTop" | "singleTask" | "singleInstance" | "singleInstancePerTask"] android:lockTaskMode=["normal" | "never" | "if_whitelisted" | "always"] android:maxRecents="integer" android:maxAspectRatio="float" android:multiprocess=["true" | "false"] android:name="string" android:noHistory=["true" | "false"] android:parentActivityName="string" android:persistableMode=["persistRootOnly" | "persistAcrossReboots" | "persistNever"] android:permission="string" android:process="string" android:relinquishTaskIdentity=["true" | "false"] android:resizeableActivity=["true" | "false"] android:screenOrientation=["unspecified" | "behind" | "landscape" | "portrait" | "reverseLandscape" | "reversePortrait" | "sensorLandscape" | "sensorPortrait" | "userLandscape" | "userPortrait" | "sensor" | "fullSensor" | "nosensor" | "user" | "fullUser" | "locked"] android:showForAllUsers=["true" | "false"] android:stateNotNeeded=["true" | "false"] android:supportsPictureInPicture=["true" | "false"] android:taskAffinity="string" android:theme="resource or theme" android:uiOptions=["none" | "splitActionBarWhenNarrow"] android:windowSoftInputMode=["stateUnspecified", "stateUnchanged", "stateHidden", "stateAlwaysHidden", "stateVisible", "stateAlwaysVisible", "adjustUnspecified", "adjustResize", "adjustPan"] > . . . </activity>
- Contenu dans :
<application>
- Peut contenir :
<intent-filter>
<meta-data>
<layout>
- Description :
- Déclare une activité (une sous-classe
Activity
) qui implémente une partie de l'interface utilisateur visuelle de l'application. Toutes les activités doivent être représentées par des éléments<activity>
dans le fichier manifeste. Celles qui ne sont pas déclarées ne seront pas vues par le système et ne seront jamais exécutées. - Attributs :
android:allowEmbedded
- Indiquez que l'activité peut être lancée en tant qu'enfant intégré à une autre activité. Cet attribut s'applique particulièrement aux cas de figure où l'enfant se trouve dans un conteneur tel qu'un écran appartenant à une autre activité. Par exemple, les activités utilisées pour les notifications personnalisées Wear doivent le déclarer pour que Wear puisse afficher l'activité dans son flux contextuel, qui se trouve dans un autre processus.
La valeur par défaut de cet attribut est
false
. android:allowTaskReparenting
- Indique si l'activité peut être déplacée de la tâche qui l'a démarrée vers la tâche avec laquelle elle a une affinité lorsqu'elle sera prête. Sa valeur est
true
si l'activité peut être déplacée, etfalse
si elle doit rester dans la tâche initiale.Si cet attribut n'est pas défini, la valeur spécifiée par l'attribut
allowTaskReparenting
correspondant de l'élément<application>
s'applique à l'activité. La valeur par défaut estfalse
.Normalement, lorsqu'une activité est lancée, elle est associée à la tâche qui l'a démarrée et y reste jusqu'à la fin de sa durée de vie. Vous pouvez utiliser cet attribut pour remplacer la tâche parent de l'activité par celle avec laquelle elle a une affinité, lorsque sa tâche actuelle ne s'affichera plus. Généralement, il permet de déplacer les activités d'une application vers la tâche principale qui lui est associée.
Par exemple, si un e-mail contient un lien vers une page Web, le fait de cliquer sur ce lien renvoie une activité qui permet d'afficher la page. Cette activité est définie par l'application de navigateur, mais elle est lancée dans le cadre de la tâche de l'e-mail. Si son parent est remplacé par la tâche du navigateur, l'activité s'affichera lorsque le navigateur apparaîtra au premier plan, et sera absente lorsque la tâche de l'e-mail reviendra au premier plan.
L'affinité d'une activité est définie par l'attribut
taskAffinity
. L'affinité d'une tâche est déterminée par la lecture de l'affinité de son activité racine. Par conséquent, une activité racine est toujours définie dans une tâche ayant la même affinité. Étant donné que les activités avec les modes de lancementsingleTask
ousingleInstance
peuvent seulement être à la racine d'une tâche, le changement de parent est limité aux modesstandard
etsingleTop
. Consultez également l'attributlaunchMode
. android:alwaysRetainTaskState
- Indique si le système conserve toujours l'état de la tâche dans laquelle l'activité est conservée. Si tel est le cas, la valeur est
true
. Si le système est autorisé à rétablir l'état initial de la tâche dans certains cas, cette valeur indiquefalse
. La valeur par défaut estfalse
. Cet attribut n'a de sens que pour l'activité racine d'une tâche. Il est ignoré pour toutes les autres activités.Normalement, le système efface une tâche (supprime toutes les activités de la pile au-dessus de l'activité racine) dans certains cas où l'utilisateur sélectionne à nouveau cette tâche depuis l'écran d'accueil. En règle générale, ce scénario se produit si l'utilisateur n'a pas consulté la tâche pendant un certain temps, par exemple 30 minutes.
Toutefois, lorsque cet attribut est défini sur
true
, les utilisateurs retournent toujours à la tâche dans l'état dans lequel ils l'avaient laissée, quelle que soit la façon dont ils y accèdent. Cette option est particulièrement utile, par exemple, dans une application telle que le navigateur Web qui contient beaucoup d'états (comme plusieurs onglets ouverts) que les utilisateurs ne souhaitent pas perdre. android:autoRemoveFromRecents
- Indique si les tâches lancées par des activités avec cet attribut resteront dans l'écran d'aperçu jusqu'à la fin de la dernière activité. Si la valeur est
true
, la tâche est automatiquement supprimée de l'écran d'aperçu. Cet attribut remplace l'utilisation deFLAG_ACTIVITY_RETAIN_IN_RECENTS
par l'appelant. Il accepte uniquement une valeur booléenne :true
oufalse
. android:banner
- Ressource drawable fournissant une bannière graphique étendue pour l'élément associé. Utilisez ce paramètre avec la balise
<activity>
afin de fournir une bannière par défaut pour une activité spécifique, ou avec la balise<application>
afin de fournir une bannière pour toutes les activités de l'application.Le système utilisera cette bannière pour représenter une application sur l'écran d'accueil d'Android TV. Étant donné qu'elle ne s'affiche que sur l'écran d'accueil, elle ne doit être spécifiée que par les applications dont l'activité gère l'intent
CATEGORY_LEANBACK_LAUNCHER
.La définition de cet attribut doit renvoyer à une ressource drawable contenant l'image (par exemple,
"@drawable/banner"
). Il n'existe pas de bannière par défaut.Au besoin, découvrez comment fournir une bannière sur l'écran d'accueil dans la documentation "Premiers pas avec les applications TV".
android:clearTaskOnLaunch
- Indique si toutes les activités sont supprimées de la tâche, sauf l'activité racine, chaque fois qu'elle est relancée depuis l'écran d'accueil (
true
si la tâche est toujours supprimée de son activité racine, etfalse
dans le cas contraire). La valeur par défaut estfalse
. Cet attribut n'a de sens que pour les activités qui commencent une nouvelle tâche (l'activité racine). Il est ignoré pour toutes les autres activités de la tâche.Lorsque la valeur est
true
, chaque fois que les utilisateurs relancent la tâche, ils sont redirigés vers son activité racine, indépendamment de leur dernière action dans la tâche et de l'option utilisée pour la quitter (bouton Retour ou Accueil). Lorsque cette valeur estfalse
, la tâche peut être supprimée des activités dans certaines situations (voir l'attributalwaysRetainTaskState
), mais pas toujours.Supposons qu'un utilisateur lance l'activité P depuis l'écran d'accueil, puis passe à l'activité Q. L'utilisateur appuie ensuite sur Accueil, puis revient à l'activité P. Normalement, l'utilisateur verra l'activité Q, car il s'agissait de sa dernière tâche dans la tâche P. Toutefois, si cette option est définie sur
true
, toutes les activités qui s'y rapportent (dans le cas présent, Q) sont supprimées lorsque l'utilisateur lance l'activité P depuis l'écran d'accueil. Dès lors, l'utilisateur ne voit que P lorsqu'il retourne dans la tâche.Si cet attribut et
allowTaskReparenting
sont tous les deuxtrue
, toutes les activités qui peuvent changer de parent sont déplacées vers la tâche avec laquelle elles partagent une affinité. Les activités restantes sont abandonnées, comme décrit ci-dessus.Cet attribut est ignoré si
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
n'est pas défini. android:colorMode
Demande l'affichage de l'activité en mode large gamme de couleurs sur les appareils compatibles. En mode large gamme de couleurs, une fenêtre peut s'afficher en dehors de la gamme
SRGB
pour afficher des couleurs plus vives. Si l'appareil n'est pas compatible avec l'affichage en mode la large gamme de couleurs, cet attribut n'a aucun effet. Pour en savoir plus sur l'affichage en mode large gamme de couleurs, consultez la section Améliorer les graphiques avec des contenus à large gamme de couleur.android:configChanges
- Indique les changements de configuration que l'activité gère elle-même. Lorsqu'un changement de configuration se produit au moment de l'exécution, l'activité est arrêtée et redémarrée par défaut, mais la déclaration d'une configuration avec cet attribut empêche son redémarrage. Au lieu de cela, l'activité reste en cours d'exécution, et sa méthode
est appelée.onConfigurationChanged()
Remarque : N'utilisez cet attribut que dans des cas particuliers, pour améliorer les performances et la réactivité de l'application. Pour en savoir plus, consultez Gérer les modifications de configuration.
Que vous n'en utilisiez qu'une ou plusieurs, les chaînes suivantes sont toutes des valeurs valides pour cet attribut. Plusieurs valeurs sont séparées par
|
(par exemple, "locale|navigation|orientation
").Valeur Description " density
"La densité d'affichage a changé. Il est possible que l'utilisateur ait spécifié une échelle différente ou qu'un autre écran soit maintenant actif. Attribut ajouté au niveau d'API 24.
" fontScale
"Le facteur de mise à l'échelle de la police a changé : l'utilisateur a sélectionné une nouvelle taille de police globale. " keyboard
"Le type de clavier a changé. Par exemple, l'utilisateur a branché un clavier externe. " keyboardHidden
"L'accessibilité du clavier a changé. Par exemple, l'utilisateur a dévoilé le clavier matériel. " layoutDirection
"La mise en page a changé de sens. Par exemple, elle est passée de gauche à droite (LTR) à droite à gauche (RTL). Attribut ajouté au niveau d'API 17.
" locale
"Les paramètres régionaux ont changé. L'utilisateur a sélectionné une nouvelle langue dans laquelle le texte doit s'afficher. " mcc
"Le mobile country code (MCC) IMSI a été modifié. Une carte SIM a été détectée, et le MCC a été mis à jour. " mnc
"Le mobile network code (MNC) IMSI a changé. Une carte SIM a été détectée, et le MNC a été mis à jour. " navigation
"Le type de navigation (trackball/pavé directionnel) a changé. Cela ne devrait normalement jamais se produire. " orientation
"L'orientation de l'écran a changé : l'utilisateur a fait pivoter l'appareil.
Remarque : Si votre application cible Android 3.2 (niveau d'API 13) ou une version ultérieure, déclarez également les configurations
"screenLayout"
et"screenSize"
, car la mise en page et la taille de l'écran peuvent changer lorsqu'un appareil passe du mode portrait au mode paysage." screenLayout
"La mise en page de l'écran a changé. Il est possible qu'un autre écran soit désormais actif. " screenSize
"La taille actuelle de l'écran a changé. Ce changement concerne la taille actuellement disponible par rapport au format actuel. Il intervient lorsque l'utilisateur passe du mode paysage au mode portrait, et vice versa.
Attribut ajouté au niveau d'API 13.
" smallestScreenSize
"La taille de l'écran physique a changé. Il s'agit d'un changement de taille, quelle que soit l'orientation. Par conséquent, le changement n'intervient que lorsque la taille réelle de l'écran physique a changé (par exemple, en passant à un écran externe). Une modification de cette configuration correspond à une modification de la configuration de smallestWidth.
Attribut ajouté au niveau d'API 13.
" touchscreen
"L'écran tactile a changé. Cela ne devrait normalement jamais se produire. " uiMode
"Le mode de l'interface utilisateur a changé. L'utilisateur a placé l'appareil sur la station d'accueil d'un bureau ou sur un support voiture, ou encore le mode Nuit a changé. Pour en savoir plus sur les différents modes d'interface utilisateur, consultez UiModeManager
.Attribut ajouté au niveau d'API 8.
Toutes ces modifications de configuration peuvent avoir une incidence sur les valeurs de ressources observées par l'application. Par conséquent, quand
est appelé, il est généralement nécessaire de récupérer à nouveau toutes les ressources (y compris les mises en page de vues, les drawables, etc.) pour gérer correctement la modification.onConfigurationChanged()
Remarque : Pour gérer toutes les modifications de configuration liées au mode multifenêtre, utilisez à la fois
"screenLayout"
et"smallestScreenSize"
. Le mode multifenêtre est compatible avec Android 7.0 (niveau d'API 24) ou version ultérieure. android:directBootAware
Indique si l'activité est compatible avec le démarrage direct, c'est-à-dire si elle peut être exécutée avant que l'utilisateur déverrouille l'appareil.
Remarque : Pendant le démarrage direct, une activité de votre application ne peut accéder qu'aux données stockées dans l'espace de stockage protégé par l'appareil.
La valeur par défaut est
"false"
.android:documentLaunchMode
- Spécifie la façon dont la nouvelle instance d'une activité doit être ajoutée à une tâche chaque fois qu'elle est lancée. Cet attribut permet à l'utilisateur d'afficher plusieurs documents de la même application sur l'écran d'aperçu.
Cet attribut présente quatre valeurs qui entraînent les effets suivants lorsque l'utilisateur ouvre un document avec l'application :
Valeur Description " intoExisting
"Le système recherche une tâche dont l'intent de base ComponentName
et l'URI de données correspondent à ceux de l'intent de lancement. Si le système trouve cette tâche, il l'efface et redémarre avec l'activité racine qui reçoit un appel àonNewIntent(android.content.Intent)
. Dans le cas contraire, il en crée une autre." always
"L'activité crée une tâche pour le document, même s'il est déjà ouvert. Cela revient à définir les indicateurs FLAG_ACTIVITY_NEW_DOCUMENT
etFLAG_ACTIVITY_MULTIPLE_TASK
.none
L'activité ne crée pas de tâche pour elle-même. Il s'agit de la valeur par défaut, qui crée une tâche uniquement lorsque FLAG_ACTIVITY_NEW_TASK
est défini. L'écran d'aperçu traite l'activité comme il le ferait par défaut : il n'affiche qu'une seule tâche pour l'application, qui reprend à partir de la dernière activité appelée par l'utilisateur." never
"Cette activité n'est pas lancée dans un nouveau document, même si l'intent contient FLAG_ACTIVITY_NEW_DOCUMENT
. La définition de cette option remplace le comportement des indicateursFLAG_ACTIVITY_NEW_DOCUMENT
etFLAG_ACTIVITY_MULTIPLE_TASK
, s'ils sont définis dans l'activité, et l'écran d'aperçu affiche une seule tâche pour l'application, qui reprend à partir de la dernière activité appelée par l'utilisateur.Remarque : Pour les valeurs autres que
none
etnever
, l'activité doit être définie aveclaunchMode="standard"
. Si cet attribut n'est pas spécifié,documentLaunchMode="none"
est utilisé. android:enabled
- Indique si l'activité peut être instanciée ou non par le système. Si tel est le cas, cette valeur est
"true"
. Dans le cas contraire, elle indiquefalse
. La valeur par défaut est "true
".L'élément
<application>
possède son propre attributenabled
qui s'applique à tous les composants d'application, y compris les activités. Pour que le système puisse instancier l'activité, les attributs<application>
et<activity>
doivent être tous les deux définis sur la valeur par défauttrue
. Si un attribut est défini surfalse
, l'activité ne peut pas être instanciée. android:excludeFromRecents
- Indique si la tâche lancée par cette activité doit être exclue de la liste des applications récemment utilisées, sur l'écran d'aperçu. Autrement dit, lorsque cette activité est l'activité racine d'une nouvelle tâche, cet attribut détermine si la tâche ne devrait pas apparaître dans la liste des applications récentes. Définissez
true
si la tâche doit être exclue de la liste. Définissezfalse
si elle doit être incluse. La valeur par défaut estfalse
. android:exported
- Cet élément détermine si l'activité peut être lancée par des composants d'autres applications :
- Si la valeur est
true
, l'activité est accessible à n'importe quelle application et peut être lancée avec le nom exact de la classe. - Si la valeur est
false
, l'activité ne peut être lancée que par des composants de la même application, des applications ayant le même ID utilisateur ou des composants système privilégiés. En l'absence de filtres d'intent, il s'agit de la valeur par défaut.
Si une activité dans votre application inclut des filtres d'intent, définissez cet élément sur
true
pour permettre à d'autres applications de la démarrer (par exemple, s'il s'agit de l'activité principale de l'application et qu'elle inclut lacategory
"android.intent.category.LAUNCHER
").Si cet élément est défini sur
false
et qu'une application tente de démarrer l'activité, le système génère une exceptionActivityNotFoundException
.Cet attribut n'est pas le seul moyen de limiter l'exposition d'une activité à d'autres applications. Les autorisations peuvent également servir à limiter les entités externes qui peuvent appeler l'activité (voir l'attribut
permission
). - Si la valeur est
android:finishOnTaskLaunch
- Indique si une instance existante de l'activité doit être arrêtée (terminée), à l'exception de l'activité racine, chaque fois que l'utilisateur relance sa tâche (qu'il la sélectionne sur l'écran d'accueil). Cette valeur est
true
si l'activité doit être arrêté, etfalse
dans le cas contraire. La valeur par défaut estfalse
.Si cet attribut et
allowTaskReparenting
sont tous les deuxtrue
, il prévaut sur l'autre. L'affinité de l'activité est ignorée. L'activité ne change pas parent, mais est détruite.Cet attribut est ignoré si
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
n'est pas défini. android:hardwareAccelerated
- Indique si le rendu avec accélération matérielle doit être activé pour cette activité.
true
est défini si tel est le cas, etfalse
dans le cas contraire. La valeur par défaut estfalse
.À partir d'Android 3.0, un moteur de rendu OpenGL avec accélération matérielle est disponible pour les applications. Il permet d'améliorer les performances de nombreuses opérations graphiques 2D courantes. Lorsque le moteur de rendu avec accélération matérielle est activé, la plupart des opérations dans Canvas, Paint, Xfermode, ColorFilter, Shader et Camera sont accélérées. Cela se traduit par des animations et un défilement plus fluides, ainsi que par une meilleure réactivité globale, même pour les applications qui n'utilisent pas explicitement les bibliothèques OpenGL du framework. En raison de l'augmentation des ressources requises pour activer l'accélération matérielle, votre application utilisera plus de RAM.
Notez que les opérations OpenGL en 2D ne sont pas toutes accélérées. Si vous activez le moteur de rendu avec accélération matérielle, testez votre application pour vous assurer qu'elle peut l'utiliser sans générer d'erreurs.
android:icon
- Icône représentant l'activité. L'icône s'affiche pour les utilisateurs lorsqu'une représentation de l'activité est requise à l'écran. Par exemple, les icônes des activités qui lancent des tâches sont affichées dans la fenêtre du lanceur d'applications.
Cette icône est souvent accompagnée d'un libellé (voir l'attribut
android:label
).Cet attribut doit être défini comme référence à une ressource drawable contenant la définition de l'image. Si cette valeur n'est pas définie, l'icône spécifiée pour l'application dans son ensemble est utilisée à la place (consultez l'attribut
icon
de l'élément<application>
).L'icône de l'activité, définie ici ou par l'élément
<application>
, est également l'icône par défaut de tous les filtres d'intent de l'activité (voir l'attributicon
de l'élément<intent-filter>
). android:immersive
- Définit le paramètre de mode immersif de l'activité actuelle. Si l'attribut
android:immersive
est défini surtrue
dans l'entrée du fichier manifeste de l'application pour cette activité, l'élémentFLAG_IMMERSIVE
du membreActivityInfo.flags
est toujours défini, même si le mode immersif est modifié au moment de l'exécution à l'aide de la méthodesetImmersive()
. android:label
- Libellé compréhensible de l'activité. Le libellé s'affiche à l'écran lorsque l'activité doit être présentée à l'utilisateur. Il s'affiche souvent avec l'icône d'activité.
Si cet attribut n'est pas défini, le libellé défini pour l'application dans son ensemble est utilisé à la place (consultez l'attribut
label
de l'élément<application>
).Le libellé de l'activité, défini ici ou par l'élément
<application>
, est également le libellé par défaut de tous les filtres d'intent de l'activité (voir l'attributlabel
de l'élément<intent-filter>
).Le libellé doit être défini comme une référence à une ressource de chaîne, de sorte qu'il puisse être localisé comme les autres chaînes de l'interface utilisateur. Toutefois, lorsque vous développez l'application, vous pouvez également le définir comme une chaîne brute.
android:launchMode
- Instructions sur le mode de lancement de l'activité. Cinq modes fonctionnent conjointement avec des indicateurs d'activité (constantes
FLAG_ACTIVITY_*
) dans les objetsIntent
pour déterminer ce qui doit se passer lorsque l'activité est appelée pour gérer un intent. Les voici :"
standard
"
"singleTop
"
"singleTask
"
"singleInstance
"
"singleInstancePerTask
"Le mode par défaut est
standard
.Comme le montre le tableau ci-dessous, les modes se divisent en deux groupes principaux, avec les activités
standard
etsingleTop
d'un côté, etsingleTask
,singleInstance
etsingleInstancePerTask
de l'autre. Une activité avec le mode de lancementstandard
ousingleTop
peut être instanciée plusieurs fois. Les instances peuvent appartenir à n'importe quelle tâche et se trouver n'importe où dans la tâche. En règle générale, elles sont lancées dans la tâche appelée
, sauf si l'objet Intent contient une instructionstartActivity()
, auquel cas une autre tâche est choisie (voir l'attribut taskAffinity).FLAG_ACTIVITY_NEW_TASK
En revanche, les activités
singleTask
,singleInstance
etsingleInstancePerTask
ont des comportements différents.singleInstancePerTask
est toujours à la racine de la tâche de l'activité. De plus, l'appareil ne peut contenir qu'une seule instance de l'activitésingleInstance
à la fois, tandis que l'activitésingleInstancePerTask
peut être instanciée plusieurs fois dans différentes tâches lorsqueFLAG_ACTIVITY_MULTIPLE_TASK
ouFLAG_ACTIVITY_NEW_DOCUMENT
est défini. Une activité avec le mode de lancementsingleTask
combine les comportements desingleInstance
etsingleInstancePerTask
: l'activité peut être instanciée plusieurs fois et peut se trouver n'importe où dans une tâche de même affinité (taskAffinity
). Pendant ce temps, l'appareil ne peut contenir qu'une seule tâche pour localiser l'activitésingleTask
à la racine de la tâche.Les modes
standard
etsingleTop
diffèrent les uns des autres à un niveau : à chaque fois nouvel intent pour une activitéstandard
, une nouvelle instance de la classe est créée pour répondre à cet intent. Chaque instance gère un seul intent. De même, une nouvelle instance d'une activitésingleTop
peut également être créée pour gérer un nouvel intent. Toutefois, si la tâche cible possède déjà une instance de l'activité en haut de sa pile, cette instance recevra le nouvel intent (dans un appelonNewIntent()
). Aucune instance ne sera créée. Dans d'autres cas, par exemple si une instance existante de l'activitésingleTop
se trouve dans la tâche cible, mais pas en haut de la pile, ou si elle se trouve en haut d'une pile, mais pas dans la tâche cible, une instance sera créée et transférée vers la pile.De même, si vous accédez à une activité de la pile actuelle, le comportement est déterminé par le mode de lancement de l'activité parent. Si l'activité parent utilise le mode de lancement
singleTop
(ou que l'intentup
contientFLAG_ACTIVITY_CLEAR_TOP
), le parent est placé en haut de la pile, et son état est préservé. L'intent de navigation est reçu par la méthodeonNewIntent()
de l'activité parent. Si l'activité parent utilise le mode de lancementstandard
(et que l'intentup
ne contient pasFLAG_ACTIVITY_CLEAR_TOP
), l'activité actuelle et son parent sont tous les deux supprimés de la pile, et une nouvelle instance de l'activité parent est créée pour recevoir l'intent de navigation.L'élément
singleInstance
diffère également desingleTask
etsingleInstancePerTask
à un niveau : une activité avec le mode de lancementsingleTask
ousingleInstancePerTask
permet aux autres activités (standard
etsingleTop
) de faire partie de sa tâche. En revanche, une activitésingleInstance
n'autorise aucune autre activité à faire partie de sa tâche. Il doit s'agir de la seule activité de la tâche. Si une autre activité démarre, elle sera attribuée à une autre tâche, comme siFLAG_ACTIVITY_NEW_TASK
était dans l'intent.Cas d'utilisation Mode de lancement Plusieurs instances ? Commentaires Lancements normaux pour la plupart des activités " standard
"Oui Par défaut. Le système crée toujours une instance de l'activité dans la tâche cible et y achemine l'intent. " singleTop
"Conditionnellement Si une instance de l'activité existe déjà en haut de la tâche cible, le système achemine l'intent vers cette instance via un appel à sa méthode onNewIntent()
, au lieu de créer une instance de l'activité.Lancements spécialisés
(non recommandés pour une utilisation générale)" singleTask
"Conditionnellement Le système crée l'activité à la racine d'une nouvelle tâche ou localise l'activité au niveau d'une tâche existante avec la même affinité. Si une instance de l'activité existe déjà et se trouve à la racine de la tâche, le système achemine l'intent vers l'instance existante via un appel à sa méthode onNewIntent()
, au lieu d'en créer une." singleInstance
"Non Identique à singleTask"
, sauf que le système ne lance aucune autre activité dans la tâche contenant l'instance. L'activité est toujours le seul et unique membre de sa tâche." singleInstancePerTask
"Conditionnellement L'activité ne peut être exécutée qu'en tant qu'activité racine de la tâche (en tant que première activité qui l'a créée). Par conséquent, il n'y aura qu'une seule instance de cette activité dans une tâche, mais celle-ci peut être instanciée plusieurs fois dans différentes tâches. Comme indiqué dans le tableau ci-dessus,
standard
est le mode par défaut et convient à la plupart des types d'activités.SingleTop
est également un mode de lancement courant et utile pour de nombreux types d'activités. Les autres modes (singleTask
,singleInstance
etsingleInstancePerTask
) ne sont pas adaptés pour la plupart des applications, car ils entraînent un modèle d'interaction que les utilisateurs ne connaissent pas et qui sont très différents de la plupart des autres applications.Quel que soit le mode de lancement choisi, assurez-vous de tester l'usabilité de l'activité pendant le lancement et lorsque vous y retournez à partir d'autres activités et tâches à l'aide du bouton Retour.
Pour en savoir plus sur les modes de lancement et leurs interactions avec les indicateurs d'intent, consultez le document Tâches et pile "Retour".
android:lockTaskMode
- Détermine comment le système présente cette activité lorsque l'appareil s'exécute en mode tâches verrouillées.
Android peut exécuter des tâches selon une approche immersive appelée "mode tâches verrouillées". Lorsque le système s'exécute en mode tâches verrouillées, les utilisateurs d'appareils ne peuvent généralement pas voir les notifications, accéder aux applications non autorisées ni revenir à l'écran d'accueil (sauf si l'application Home est sur la liste d'autorisation). Seules les applications ajoutées à la liste d'autorisation par un outil de contrôle des règles relatives aux appareils (DPC) peuvent s'exécuter lorsque le système est en mode tâches verrouillées. Toutefois, le système et les applications privilégiées peuvent s'exécuter en mode tâches verrouillées sans être ajoutés à la liste d'autorisation.
Cette valeur peut correspondre à l'une des valeurs de chaîne
R.attr.lockTaskMode
suivantes :Valeur Description "normal"
Valeur par défaut. Il s'agit de la valeur par défaut. Les tâches ne sont pas lancées en mode tâches verrouillées, mais peuvent y être placées en appelant startLockTask()
."never"
Les tâches ne sont pas lancées en mode tâches verrouillées, et l'utilisateur de l'appareil ne peut pas les épingler à partir de l'écran d'aperçu.
Remarque : Ce mode n'est disponible que pour les applications système et privilégiées. Les applications non privilégiées ayant cette valeur sont traitées comme
normal
."if_whitelisted"
Si l'outil DPC autorise ce package à l'aide de DevicePolicyManager.setLockTaskPackages()
, ce mode est identique àalways
, sauf que l'activité doit appelerstopLockTask()
avant de pouvoir terminer s'il s'agit de la dernière tâche verrouillée. Si l'outil DPC n'autorise pas ce package, ce mode est identique ànormal
."always"
Les tâches associées à cette activité sont toujours lancées en mode tâches verrouillées. Si le système est déjà en mode tâches verrouillées au lancement de cette tâche, la nouvelle tâche est lancée en plus de la tâche actuelle. Pour que les tâches lancées dans ce mode quittent le mode tâches verrouillées, appelez
finish()
.Remarque : Ce mode n'est disponible que pour les applications système et privilégiées. Les applications non privilégiées ayant cette valeur sont traitées comme
normal
.Cet attribut a été introduit dans le niveau d'API 23.
android:maxRecents
- Nombre maximal de tâches associées à cette activité dans l'écran d'aperçu. Lorsque ce nombre d'entrées est atteint, le système supprime de l'écran d'aperçu l'instance la moins récemment utilisée. Les valeurs valides sont comprises entre 1 et 50 (25 sur les appareils à faible mémoire). Le chiffre zéro n'est pas valide. Il doit s'agir d'un nombre entier, tel que 50. La valeur par défaut est 16.
android:maxAspectRatio
Format maximal accepté par l'activité. Si l'application s'exécute sur un appareil dont le format est plus large, le système recadre automatiquement l'application, laissant des portions de l'écran inutilisées pour qu'elle puisse s'exécuter au format maximal spécifié.
Le format maximal est exprimé sous la forme décimale correspondant au quotient de la dimension la plus longue de l'appareil, divisé par sa dimension la plus courte. Par exemple, si le format maximal est de 7:3, définissez la valeur de cet attribut sur 2,33.
Sur les appareils non connectés, la valeur de cet attribut doit être 1,33 ou supérieure. Sur les accessoires connectés, elle doit être de 1 ou plus. Dans le cas contraire, le système ignore la valeur définie.
Remarque : Cet attribut est ignoré si la valeur
resizeableActivity
de l'activité est définie sur "true", car cela signifie que votre activité accepte toutes les tailles.Pour en savoir plus sur cet attribut, consultez la section Déclarer un format maximal sous Déclarer une compatibilité d'écran limitée.
android:multiprocess
- Indique si une instance de l'activité peut être lancée dans le processus du composant à l'origine de l'activité (
true
si tel est le cas etfalse
dans le cas contraire). La valeur par défaut estfalse
.Normalement, une nouvelle instance d'une activité est lancée dans le processus de l'application qui l'a définie. Toutes les instances de l'activité s'exécutent donc dans le même processus. Toutefois, si cette option est définie sur
true
, les instances de l'activité peuvent s'exécuter dans plusieurs processus, ce qui permet au système de créer des instances partout où elles sont utilisées (à condition que les autorisations le permettent), ce qui n'est presque jamais nécessaire ni souhaitable. android:name
- Nom de la classe qui implémente l'activité, sous-classe de
Activity
. La valeur de l'attribut doit être un nom de classe complet (par exemple,com.example.project.ExtracurricularActivity
). Cependant, pour faire court, si le premier caractère du nom est un point (par exemple,.ExtracurricularActivity
), il est ajouté à l'espace de noms spécifié dans le fichierbuild.gradle
.Une fois votre application publiée, vous ne devez pas modifier ce nom (sauf si vous avez défini
android:exported="false"
).Il n'y a pas de valeur par défaut. Vous devez renseigner le nom.
android:noHistory
- Indique si l'activité doit être supprimée de la pile d'activités et terminée (méthode
appelée) lorsque l'utilisateur la quitte et qu'elle n'est plus visible à l'écran (finish()
true
si elle doit être terminée, etfalse
dans le cas contraire). La valeur par défaut estfalse
.La valeur
true
signifie que l'activité ne laissera pas de trace historique. Elle ne restera pas dans la pile d'activités de la tâche. L'utilisateur ne pourra donc pas y revenir. Dans ce cas,onActivityResult()
n'est jamais appelé si vous démarrez une autre activité pour démarrer un processus à partir de cette activité.Cet attribut a été introduit dans le niveau d'API 3.
android:parentActivityName
- Nom de classe du parent logique de l'activité. Le nom ici doit correspondre au nom de classe attribué à l'attribut
android:name
de l'élément<activity>
correspondant.Le système lit cet attribut pour déterminer quelle activité doit démarrer lorsque l'utilisateur appuie sur le bouton "Haut" de la barre d'action. Le système peut également utiliser ces informations pour synthétiser une pile d'activités antérieure avec
TaskStackBuilder
.Pour prendre en charge les niveaux d'API 4 à 16, vous pouvez également déclarer l'activité parent avec un élément
<meta-data>
qui spécifie une valeur pour"android.support.PARENT_ACTIVITY"
. Exemple :<activity android:name="com.example.app.ChildActivity" android:label="@string/title_child_activity" android:parentActivityName="com.example.app.MainActivity" > <!-- Parent activity meta-data to support API level 4+ --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.app.MainActivity" /> </activity>
Pour en savoir plus sur la déclaration de l'activité parent afin de permettre la navigation vers le haut, consultez la section Ajouter la navigation vers le haut.
Cet attribut a été introduit dans le niveau d'API 16.
android:persistableMode
Définit la manière dont l'instance d'une activité est préservée dans une tâche associée lors des redémarrages d'appareils.
Si l'activité racine d'une tâche définit la valeur de cet attribut sur
persistRootOnly
, seule l'activité racine est conservée. Dans le cas contraire, les activités qui se trouvent plus haut dans la pile "Retour" de la tâche sont examinées. Toute activité qui définit la valeur de cet attribut surpersistAcrossReboots
est conservée.Si vous utilisez cet attribut, vous devez lui attribuer la valeur suivante :
Valeur Description persistRootOnly
Valeur par défaut. Lorsque le système redémarre, la tâche est conservée, mais seul l'intent de lancement de l'activité racine est utilisé. Lorsque l'intent de lancement de votre application charge l'activité racine de votre application, l'activité ne reçoit pas d'objet
PersistableBundle
. Par conséquent, n'utilisez pasonSaveInstanceState()
pour préserver l'état de l'activité racine de votre application lors du redémarrage d'un appareil.Remarque : Cette valeur d'attribut n'affecte le comportement de votre application que si elle est définie sur l'activité racine de votre application.
persistAcrossReboots
L'état de cette activité est conservé, ainsi que l'état de chaque activité située plus haut dans la pile "Retour", dont l'attribut
persistableMode
est défini surpersistAcrossReboots
. Si une activité ne comporte pas d'attributpersistableMode
défini surpersistAcrossReboots
ou qu'elle est lancée via l'indicateurIntent.FLAG_ACTIVITY_NEW_DOCUMENT
, cette activité, ainsi que toutes les activités situées plus haut dans la pile "Retour" ne sont pas conservées.Lorsqu'un intent charge une activité dont l'attribut
persistableMode
est défini surpersistAcrossReboots
dans votre application, l'activité reçoit un objetPersistableBundle
dans sa méthodeonCreate()
. Par conséquent, vous pouvez utiliseronSaveInstanceState()
pour conserver l'état d'une activité lors du redémarrage d'un appareil, à condition que l'attributpersistableMode
soit défini surpersistAcrossReboots
.Remarque : Cette valeur d'attribut affecte le comportement de votre application, même si elle est définie sur une activité autre que l'activité racine de votre application.
persistNever
L'état de l'activité n'est pas conservé.
Remarque : Cette valeur d'attribut n'affecte le comportement de votre application que si elle est définie sur l'activité racine de votre application.
Cet attribut a été introduit dans le niveau d'API 21.
android:permission
- Nom d'une autorisation que les clients doivent avoir pour lancer l'activité ou qu'ils doivent obtenir pour répondre à un intent. Si un appelant de
oustartActivity()
n'a pas reçu l'autorisation spécifiée, son intent ne sera pas transmis à l'activité.startActivityForResult()
Si cet attribut n'est pas spécifié, l'autorisation définie par l'attribut
permission
de l'élément<application>
s'applique à l'activité. Si aucun attribut n'est défini, l'activité n'est pas protégée par une autorisation.Pour en savoir plus sur les autorisations, consultez la section Autorisations dans l'introduction et un autre document intitulé Sécurité et autorisations.
android:process
- Nom du processus dans lequel l'activité doit s'exécuter. Normalement, tous les composants d'une application s'exécutent avec un nom de processus par défaut créé pour celle-ci, et vous n'avez pas besoin d'utiliser cet attribut. Toutefois, si nécessaire, vous pouvez remplacer le nom du processus par défaut par cet attribut, ce qui vous permet de répartir les composants de l'application sur plusieurs processus.
Si le nom assigné à cet attribut commence par le signe deux-points (:), un processus réservé à l'application est créé lorsque cela est nécessaire, et l'activité est exécutée dans ce processus. Si le nom du processus commence par une lettre minuscule, l'activité sera exécutée dans un processus global du même nom, à condition qu'elle soit autorisée à le faire. Cela permet aux composants de différentes applications de partager un processus, ce qui réduit l'utilisation des ressources.
L'attribut
process
de l'élément<application>
peut définir un nom de processus par défaut différent pour tous les composants. android:relinquishTaskIdentity
- Indique si l'activité cède ses identifiants de tâche à une activité supérieure à celle-ci dans la pile de tâches. Une tâche dont l'attribut racine est défini sur
true
remplace l'intent de base par celui de l'activité suivante dans la tâche. Si l'attribut suivant est également défini surtrue
, l'intent de base sera généré pour toute activité lancée dans la même tâche. Le processus se poursuit pour chaque activité jusqu'à ce qu'une activité corresponde à l'attributfalse
. La valeur par défaut estfalse
.Cet attribut défini sur
true
permet également à l'activité d'utiliserActivityManager.TaskDescription
pour modifier les libellés, les couleurs et les icônes de l'écran d'aperçu. resizeableActivity
-
Indique si l'application est compatible avec le mode multifenêtre. Vous pouvez définir cet attribut dans l'élément
<activity>
ou<application>
.Si vous définissez cet attribut sur "true", l'utilisateur peut lancer l'activité en mode Écran partagé et en mode Format libre. Si vous le définissez sur "false", l'application ne peut pas être testée ni optimisée pour un environnement multifenêtre. Pour activer l'activité en mode multifenêtre, le système peut toujours appliquer le mode de compatibilité. Définir cet attribut sur "true" ne garantit pas non plus qu'aucune autre application en mode multifenêtre (telle que Picture-in-picture) n'est visible à l'écran ni sur d'autres écrans. Par conséquent, l'activation de cette option ne garantit pas que votre application dispose d'un accès exclusif aux ressources.
Si votre application cible le niveau d'API 24 ou supérieur, mais que vous ne spécifiez pas de valeur pour cet attribut, cette valeur sera définie par défaut sur "true".
Si votre application cible le niveau d'API 31 ou supérieur, cet attribut fonctionne différemment sur les petits et les grands écrans :
- Grands écrans (SW = > 600 dp) : toutes les applications sont compatibles avec le mode multifenêtre. L'attribut indique si une application peut être redimensionnée (et non si elle est compatible avec le mode multifenêtre). Si la valeur est
resizeableActivity="false"
, l'application passe en mode de compatibilité lorsque cela est nécessaire, conformément aux dimensions d'affichage. - Petits écrans (SW < 600 dp) : si
resizeableActivity="true"
et si la largeur et la hauteur minimales de l'activité sont conformes aux exigences du mode multifenêtre, l'application est compatible avec le mode multifenêtre. Si la valeur estresizeableActivity="false"
, l'application n'est pas compatible avec le mode multifenêtre, quelles que soient la largeur et la hauteur minimales de l'activité.
Remarque : Les fabricants d'appareils peuvent ignorer le comportement du niveau d'API 31.
Cet attribut a été ajouté au niveau d'API 24.
Remarque : La valeur de l'activité racine d'une tâche est appliquée à toutes les autres activités qui y sont lancées. Autrement dit, si l'activité racine d'une tâche peut être redimensionnée, le système considère toutes les autres activités de cette tâche comme redimensionnables. Si l'activité racine n'est pas redimensionnable, les autres activités de la tâche ne le sont pas.
- Grands écrans (SW = > 600 dp) : toutes les applications sont compatibles avec le mode multifenêtre. L'attribut indique si une application peut être redimensionnée (et non si elle est compatible avec le mode multifenêtre). Si la valeur est
android:screenOrientation
- Orientation de l'écran de l'activité sur l'appareil. Le système ignore cet attribut si l'activité est en mode multifenêtre.
Cette valeur peut correspondre à l'une des chaînes suivantes :
" unspecified
"Valeur par défaut. Le système choisit l'orientation. La règle utilisée et les choix effectués dans des contextes spécifiques peuvent varier d'un appareil à l'autre. " behind
"Même orientation que l'activité située juste en dessous dans la pile d'activités. " landscape
"Orientation paysage (l'écran est plus large que haut). " portrait
"Orientation portrait (l'écran est plus haut que large). " reverseLandscape
"Orientation paysage dans le sens opposé au mode paysage standard. Attribut ajouté au niveau d'API 9. " reversePortrait
"Orientation portrait dans le sens opposé au mode portrait standard. Attribut ajouté au niveau d'API 9. " sensorLandscape
"Orientation paysage standard ou inversée selon le capteur de l'appareil. Le capteur est utilisé même si l'utilisateur a verrouillé la rotation basée sur le capteur. Attribut ajouté au niveau d'API 9. " sensorPortrait
"Orientation portrait standard ou inversée selon le capteur de l'appareil. Le capteur est utilisé même si l'utilisateur a verrouillé la rotation basée sur le capteur. Toutefois, selon la configuration de l'appareil, la rotation de 180 degrés par rapport à l'original n'est pas toujours autorisée. Attribut ajouté au niveau d'API 9. " userLandscape
"Orientation paysage standard ou inversée selon le capteur de l'appareil et les préférences de l'utilisateur. Attribut ajouté au niveau d'API 18. userPortrait
Orientation portrait standard ou inversée selon le capteur de l'appareil et les préférences de l'utilisateur. Toutefois, selon la configuration de l'appareil, la rotation de 180 degrés par rapport à l'original n'est pas toujours autorisée. Attribut ajouté au niveau d'API 18. " sensor
"L'orientation est déterminée par le capteur d'orientation de l'appareil. L'orientation de l'écran dépend de la façon dont l'utilisateur tient l'appareil. Elle change lorsque l'utilisateur fait pivoter l'appareil. Cependant, certains appareils ne pivotent pas par défaut dans les quatre orientations possibles. Pour permettre les quatre orientations, utilisez "fullSensor"
. Le capteur est utilisé même si l'utilisateur a verrouillé la rotation basée sur le capteur." fullSensor
"L'orientation est déterminée par le capteur d'orientation de l'appareil pour l'une des quatre orientations possibles. Cette méthode est semblable à "sensor"
, à la différence près qu'elle autorise l'une des quatre orientations d'écran possibles, quelles que soient les actions habituelles de l'appareil. Par exemple, certains appareils n'utilisent généralement pas le mode portrait ou paysage inversé, mais ces orientations sont alors activées. Attribut ajouté au niveau d'API 9.nosensor
L'orientation est déterminée sans tenir compte d'un capteur d'orientation physique. Le capteur est ignoré. L'écran ne pivote donc pas en fonction de la façon dont l'utilisateur déplace l'appareil. " user
"Orientation préférée actuelle de l'utilisateur. " fullUser
"Si l'utilisateur a verrouillé la rotation basée sur le capteur, le comportement est le même que l'attribut user
. Sinon, le comportement est le même quefullSensor
et l'une des quatre orientations d'écran est possible. Attribut ajouté au niveau d'API 18." locked
"Verrouille la direction actuelle de l'orientation, quelle qu'elle soit. Attribut ajouté au niveau d'API 18. Remarque : Lorsque vous déclarez l'une des valeurs paysage ou portrait, elle est considérée comme une exigence stricte pour l'orientation dans laquelle l'activité s'exécute. Par conséquent, la valeur que vous déclarez permet un filtrage par services tels que Google Play, afin que votre application ne soit disponible que sur les appareils compatibles avec l'orientation requise par vos activités. Par exemple, si vous déclarez
"landscape"
,"reverseLandscape"
ou"sensorLandscape"
, votre application ne sera disponible que pour les appareils compatibles avec l'orientation paysage. Cependant, vous devez également déclarer explicitement que votre application nécessite l'orientation portrait ou paysage avec l'élément<uses-feature>
(par exemple,<uses-feature android:name="android.hardware.screen.portrait"/>
). Il s'agit simplement d'un comportement de filtrage fourni par Google Play (et d'autres services compatibles). La plate-forme elle-même ne contrôle pas si votre application peut être installée lorsqu'un appareil n'accepte que certaines orientations. android:showForAllUsers
-
Indique si l'activité est affichée lorsque l'utilisateur actuel de l'appareil est différent de celui qui a lancé l'activité. Vous pouvez définir cet attribut sur une valeur littérale (
"true"
ou"false"
) ou définir un attribut de ressource ou thématique contenant une valeur booléenne.Cet attribut a été ajouté au niveau d'API 23.
android:stateNotNeeded
- Indique si l'activité peut être fermée ou redémarrée sans avoir enregistré son état (
true
si elle peut être redémarrée sans référence à son état précédent, etfalse
si son état précédent est requis). La valeur par défaut estfalse
.Normalement, avant qu'une activité ne soit temporairement arrêtée pour économiser des ressources, sa méthode
est appelée. Cette méthode stocke l'état actuel de l'activité dans un objetonSaveInstanceState()
Bundle
, qui est ensuite transmis à
lorsque l'activité est redémarrée. Si cet attribut est défini suronCreate()
true
,onSaveInstanceState()
ne peut pas être appelé, etonCreate()
est transmis avecnull
à la place du bundle, comme c'était le cas lorsque l'activité a démarré pour la première fois.Le paramètre
true
garantit que l'activité peut redémarrer sans que l'état ne soit conservé. Par exemple, l'activité qui affiche l'écran d'accueil utilise ce paramètre pour éviter qu'elle ne soit supprimée en cas de plantage quelconque. supportsPictureInPicture
-
Indique si l'activité est compatible avec le mode d'affichage Picture-in-picture.
Cet attribut a été ajouté au niveau d'API 24.
android:taskAffinity
- Tâche avec laquelle l'activité a une affinité. Les activités avec la même affinité appartiennent conceptuellement à la même tâche (à la même "application" du point de vue de l'utilisateur). L'affinité d'une tâche est déterminée par l'affinité de son activité racine.
Elle détermine deux choses : la nouvelle tâche parent vers laquelle l'activité est renvoyée (voir l'attribut
allowTaskReparenting
) et la tâche qui héberge l'activité lorsqu'elle est lancée avec l'indicateur
.FLAG_ACTIVITY_NEW_TASK
Par défaut, toutes les activités d'une application ont la même affinité. Vous pouvez définir cet attribut pour les regrouper différemment, et même placer les activités définies dans différentes applications au sein de la même tâche. Pour spécifier que l'activité n'a aucune affinité avec une tâche, définissez-la sur une chaîne vide.
Si cet attribut n'est pas défini, l'activité hérite de l'affinité spécifiée pour l'application (voir l'attribut
taskAffinity
de l'élément<application>
). Le nom de l'affinité par défaut d'une application est l'espace de noms défini dans le fichierbuild.gradle
. android:theme
- Renvoie à une ressource de style définissant un thème général pour l'activité.
Il définit automatiquement le contexte de l'activité pour l'utilisation de ce thème (voir
) et peut également entraîner des animations de "début" avant le lancement de l'activité (pour être encore plus fidèle à l'activité réelle).setTheme()
Si cet attribut n'est pas spécifié, l'activité hérite du thème défini pour l'application dans son ensemble, à partir de l'attribut
theme
de l'élément<application>
. Si cet attribut n'est pas non plus spécifié, le thème système par défaut est utilisé. Pour en savoir plus, consultez le guide du développeur Styles et thèmes. android:uiOptions
- Options supplémentaires pour l'interface utilisateur d'une activité.
Doit correspondre à l'une des valeurs suivantes.
Valeur Description "none"
Aucune option d'interface utilisateur supplémentaire. Il s'agit de l'option par défaut. "splitActionBarWhenNarrow"
Ajoutez une barre en bas de l'écran pour afficher les tâches dans la barre d'application (également appelée barre d'action) lorsque l'espace horizontal de l'écran est limité (par exemple, en mode portrait sur un téléphone). Au lieu d'afficher quelques-unes des tâches qui apparaissent dans la barre d'application en haut de l'écran, celle-ci est divisée en deux sections : la partie de navigation supérieure et la barre de tâches inférieure. Vous disposerez ainsi d'un espace raisonnable non seulement pour les tâches, mais aussi pour la navigation et les éléments de titre dans la partie supérieure. Les éléments de menu ne sont pas répartis entre les deux barres. Ils apparaissent toujours ensemble. Pour en savoir plus sur la barre d'application, reportez-vous au cours Ajouter la barre d'application.
Cet attribut a été ajouté au niveau d'API 14.
android:windowSoftInputMode
- Interactions entre la fenêtre principale de l'activité et la fenêtre contenant le clavier virtuel à l'écran. Le paramètre de cet attribut a une incidence sur deux éléments :
- État du clavier virtuel (masqué ou visible) lorsque l'activité est au centre de l'attention de l'utilisateur.
- Ajustement apporté à la fenêtre principale de l'activité. Par exemple, sa taille peut être réduite afin de libérer de l'espace pour le clavier virtuel ou son contenu peut apparaître en panoramique pour que la cible actuelle soit visible lorsqu'une partie de la fenêtre est recouverte par le clavier virtuel.
Ce paramètre doit correspondre à l'une des valeurs répertoriées dans le tableau suivant, ou à une combinaison de la valeur
state...
et d'une valeuradjust...
. La spécification de plusieurs valeurs dans l'un ou l'autre des groupes (plusieurs valeursstate...
, par exemple) génère des résultats non définis. Les valeurs individuelles sont séparées par une barre verticale (|
). Exemple :<activity android:windowSoftInputMode="stateVisible|adjustResize" ... >
Les valeurs spécifiées ici (autres que
stateUnspecified
etadjustUnspecified
) remplacent les valeurs définies dans le thème.Valeur Description " stateUnspecified
"L'état du clavier virtuel (masqué ou visible) n'est pas spécifié. Le système choisira un état approprié ou se basera sur le paramètre du thème. Ce paramètre est le comportement par défaut du clavier virtuel.
" stateUnchanged
"Le clavier virtuel est conservé dans son état précédent, qu'il soit visible ou masqué, lorsque l'activité apparaît au premier plan. " stateHidden
"Le clavier virtuel est masqué lorsque l'utilisateur choisit l'activité, c'est-à-dire lorsqu'il y accède l'activité explicitement au lieu d'y retourner en raison d'une autre activité. " stateAlwaysHidden
"Le clavier virtuel est toujours masqué lorsque la fenêtre principale de l'activité est sélectionnée. " stateVisible
"Le clavier virtuel est visible lorsque l'utilisateur choisit l'activité, c'est-à-dire lorsqu'il accède à l'activité de manière explicite au lieu d'y retourner après avoir quitté une autre activité. " stateAlwaysVisible
"Le clavier virtuel est visible lorsque la fenêtre est sélectionnée. " adjustUnspecified
"Ce champ n'est pas spécifié, que la fenêtre principale de l'activité soit redimensionnée pour faire de la place au clavier virtuel ou que le contenu de la fenêtre apparaisse en panoramique pour que l'élément sélectionné soit visible à l'écran. Le système sélectionne automatiquement l'un de ces modes selon que le contenu de la fenêtre comporte des vues de mise en page qui peuvent faire défiler leur contenu. Dans ce cas, la fenêtre est redimensionnée selon l'hypothèse que le défilement peut rendre tout contenu de la fenêtre visible dans une zone plus petite. Il s'agit du paramètre par défaut pour le comportement de la fenêtre principale.
adjustResize
La fenêtre principale de l'activité est toujours redimensionnée pour faire de la place au clavier virtuel à l'écran. " adjustPan
"La fenêtre principale de l'activité n'est pas redimensionnée pour faire de la place au clavier virtuel. À la place, le contenu de la fenêtre est automatiquement affiché en panoramique de sorte que la sélection active ne soit jamais masquée par le clavier et que les utilisateurs puissent toujours voir ce qu'ils saisissent. Ce comportement n'est généralement pas aussi souhaitable que le redimensionnement, car l'utilisateur peut être amené à fermer le clavier virtuel pour accéder à des parties masquées de la fenêtre et interagir avec elles. Cet attribut a été introduit dans le niveau d'API 3.
- Première apparition :
- Niveau d'API 1 pour tous les attributs, à l'exception de
noHistory
etwindowSoftInputMode
, qui ont été ajoutés au niveau d'API 3 - Voir aussi :
<application>
<activity-alias>
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2023/02/16 (UTC).
[]
[]