Pasek nawigacyjny platformy Xamarin.Android
System Android 4 wprowadził nową funkcję interfejsu użytkownika systemu o nazwie Pasek nawigacyjny, który zapewnia kontrolki nawigacji na urządzeniach, które nie zawierają przycisków sprzętowych dla strony głównej, wstecz i menu. Poniższy zrzut ekranu przedstawia pasek nawigacyjny z urządzenia Nexus Prime:
Dostępnych jest kilka nowych flag, które kontrolują widoczność paska nawigacyjnego i jego kontrolek, a także widoczność paska systemowego wprowadzonego w systemie Android 3. Flagi są zdefiniowane w Android.View.View
klasie i są wymienione poniżej:
SystemUiFlagVisible
— powoduje, że pasek nawigacyjny jest widoczny.SystemUiFlagLowProfile
— Przyciemnia kontrolki na pasku nawigacyjnym.SystemUiFlagHideNavigation
— ukrywa pasek nawigacyjny.
Te flagi można zastosować do dowolnego widoku w hierarchii widoków, ustawiając SystemUiVisibility
właściwość . Jeśli wiele widoków ma ten zestaw właściwości, system łączy je z operacją OR i stosuje je tak długo, jak okno, w którym ustawiono flagi zachowuje fokus. Po usunięciu widoku wszystkie flagi ustawione również zostaną usunięte.
W poniższym przykładzie pokazano prostą aplikację, w której kliknięcie dowolnego przycisku spowoduje zmianę elementu SystemUiVisibility
:
Kod umożliwiający zmianę SystemUiVisibility
właściwości w TextView
programie obsługi zdarzeń kliknięcia każdego przycisku, jak pokazano poniżej:
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;
}
SystemUiVisibility
Ponadto zmiana powoduje wywołanie SystemUiVisibilityChange
zdarzenia. Podobnie jak ustawienie SystemUiVisibility
właściwości, program obsługi zdarzenia można zarejestrować dla SystemUiVisibilityChange
dowolnego widoku w hierarchii. Na przykład poniższy kod używa TextView
wystąpienia do zarejestrowania się na potrzeby zdarzenia:
tv.SystemUiVisibilityChange +=
delegate(object sender, View.SystemUiVisibilityChangeEventArgs e) {
tv.Text = String.Format ("Visibility = {0}", e.Visibility);
};