Xamarin.Android 導覽列
Android 4 引進了稱為導覽列的新系統使用者介面功能,可在不包含 [首頁]、[上一頁] 和 [功能表] 硬體按鈕的裝置上提供流覽控制件。 下列螢幕快照顯示 Nexus Prime 裝置的導覽列:
有數個新的旗標可供使用,可控制導覽列及其控件的可見性,以及Android 3中引進的系統列可見度。 旗標定義於 類別中 Android.View.View
,如下所列:
SystemUiFlagVisible
– 讓導覽列可見。SystemUiFlagLowProfile
– 將導覽列中的控件變暗。SystemUiFlagHideNavigation
– 隱藏導覽列。
這些旗標可以藉由設定 SystemUiVisibility
屬性,套用至檢視階層中的任何檢視。 如果有多個檢視已設定這個屬性,系統會將它們與 OR 作業結合,並套用它們,只要設定旗標的視窗會保留焦點。 當您移除檢視時,也會移除它設定的任何旗標。
下列範例顯示簡單的應用程式,其中按下任一按鈕會變更 SystemUiVisibility
:
從每個按鈕的 Click 事件處理程式變更 SystemUiVisibility
上的 屬性 TextView
的程式代碼,如下所示:
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
變更也會 SystemUiVisibilityChange
引發 事件。 就像設定 SystemUiVisibility
屬性一樣,事件處理程式 SystemUiVisibilityChange
可以註冊階層中的任何檢視。 例如,下列程式代碼會使用 TextView
實例來註冊事件:
tv.SystemUiVisibilityChange +=
delegate(object sender, View.SystemUiVisibilityChangeEventArgs e) {
tv.Text = String.Format ("Visibility = {0}", e.Visibility);
};