Navigační panel Xamarin.Android
Android 4 zavedl novou funkci uživatelského rozhraní systému označovanou jako navigační panel, který poskytuje navigační ovládací prvky na zařízeních, která neobsahují hardwarová tlačítka pro domovskou stránku, zpět a nabídku. Následující snímek obrazovky ukazuje navigační panel ze zařízení Nexus Prime:
K dispozici je několik nových příznaků, které řídí viditelnost navigačního panelu a jeho ovládacích prvků a také viditelnost systémového panelu, který byl zaveden v Androidu 3. Příznaky jsou definovány ve Android.View.View
třídě a jsou uvedeny níže:
SystemUiFlagVisible
– Zviditelní navigační panel.SystemUiFlagLowProfile
– Ztlumí ovládací prvky na navigačním panelu.SystemUiFlagHideNavigation
– Skryje navigační panel.
Tyto příznaky lze použít pro jakékoli zobrazení v hierarchii zobrazení nastavením SystemUiVisibility
vlastnosti. Pokud má tato vlastnost nastaveno více zobrazení, systém je zkombinuje s operací OR a použije je tak dlouho, dokud okno, ve kterém jsou nastavené příznaky, zachová fokus. Když zobrazení odeberete, odeberou se také všechny příznaky, které je nastavené.
Následující příklad ukazuje jednoduchou aplikaci, kde kliknutím na některé z tlačítek změníte SystemUiVisibility
:
Kód, který změní SystemUiVisibility
vlastnost na obslužné TextView
rutině události kliknutí na každé tlačítko, jak je znázorněno níže:
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
Také změna vyvolá SystemUiVisibilityChange
událost. Stejně jako nastavení SystemUiVisibility
vlastnosti lze obslužnou rutinu události SystemUiVisibilityChange
zaregistrovat pro jakékoli zobrazení v hierarchii. Následující kód například používá TextView
instanci k registraci události:
tv.SystemUiVisibilityChange +=
delegate(object sender, View.SystemUiVisibilityChangeEventArgs e) {
tv.Text = String.Format ("Visibility = {0}", e.Visibility);
};