Barre de navigation Xamarin.Android
Android 4 a introduit une nouvelle fonctionnalité d’interface utilisateur système appelée barre de navigation, qui fournit des contrôles de navigation sur les appareils qui n’incluent pas de boutons matériels pour accueil, retour et menu. La capture d’écran suivante montre la barre de navigation à partir d’un appareil Nexus Prime :
Plusieurs nouveaux indicateurs sont disponibles qui contrôlent la visibilité de la barre de navigation et de ses contrôles, ainsi que la visibilité de la barre système introduite dans Android 3. Les indicateurs sont définis dans la Android.View.View
classe et sont répertoriés ci-dessous :
SystemUiFlagVisible
: rend la barre de navigation visible.SystemUiFlagLowProfile
: désactive les contrôles dans la barre de navigation.SystemUiFlagHideNavigation
: masque la barre de navigation.
Ces indicateurs peuvent être appliqués à n’importe quelle vue de la hiérarchie d’affichage en définissant la SystemUiVisibility
propriété. Si plusieurs vues ont ce jeu de propriétés, le système les combine avec une opération OR et les applique tant que la fenêtre dans laquelle les indicateurs sont définis conserve le focus. Lorsque vous supprimez une vue, tous les indicateurs qu’il a définis sont également supprimés.
L’exemple suivant montre une application simple où cliquer sur l’un des boutons modifie les SystemUiVisibility
éléments suivants :
Code permettant de modifier la SystemUiVisibility
propriété sur un TextView
gestionnaire d’événements click de chaque bouton, comme indiqué ci-dessous :
var tv = FindViewById<TextView> (Resource.Id.systemUiFlagTextView);
var lowProfileButton = FindViewById<Button>(Resource.Id.lowProfileButton);
var hideNavButton = FindViewById<Button> (Resource.Id.hideNavigation);
var visibleButton = FindViewById<Button> (Resource.Id.visibleButton);
lowProfileButton.Click += delegate {
tv.SystemUiVisibility =
(StatusBarVisibility)View.SystemUiFlagLowProfile;
};
hideNavButton.Click += delegate {
tv.SystemUiVisibility =
(StatusBarVisibility)View.SystemUiFlagHideNavigation;
};
visibleButton.Click += delegate {
tv.SystemUiVisibility = (StatusBarVisibility)View.SystemUiFlagVisible;
}
En outre, une SystemUiVisibility
modification déclenche un SystemUiVisibilityChange
événement. Tout comme la définition de la SystemUiVisibility
propriété, un gestionnaire pour l’événement SystemUiVisibilityChange
peut être inscrit pour n’importe quelle vue de la hiérarchie. Par exemple, le code ci-dessous utilise l’instance TextView
pour s’inscrire à l’événement :
tv.SystemUiVisibilityChange +=
delegate(object sender, View.SystemUiVisibilityChangeEventArgs e) {
tv.Text = String.Format ("Visibility = {0}", e.Visibility);
};