![]() |
![]() |
نوار پیمایش در زامارین
از اندروید 4 به بعد ، نوار پیمایش -Navigation Bar قرار گرفت که شامل 3 دکمه ، خانه و بازگشت به عقب و منو می باشد . در شکل زیر نوار پیمایش در Nexus Prime نشان داده شده است.
که سه حالت برای آن میتوان تعریف کرد.
SystemUiFlagVisible که نوار پیمایش را نشان میدهد
SystemUiFlagLowProfile نوار پیمایش را با کم شدن رنگ پنهان میکند و نوار بالا برنامه را کم رنگ تر میکند.
SystemUiFlagHideNavigation نوار پیمایش را پنهان می کند.
با اختصاص SystemUiVisibility به هر کدام از المان های صفحه میتوانیم به آن دسترسی داشته باشیم.
در این مثال میخواهیم سه دکمه و یک textveiw داشته باشیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
[Activity(Label = "Navigation", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity : Activity { TextView tv; Button mbtn1; Button mbtn2; Button mbtn3; protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); mbtn1 = FindViewById %button% (Resource.Id.btn1); mbtn2 = FindViewById %Button% (Resource.Id.btn2); mbtn3 = FindViewById %Button% (Resource.Id.btn3); tv = FindViewById %TextView % (Resource.Id.textView1); tv.SystemUiVisibility = (StatusBarVisibility)View.SystemUiFlagHideNavigation; mbtn1.Click += Mbtn1_Click; mbtn2.Click += Mbtn2_Click; mbtn3.Click += Mbtn3_Click; tv.SystemUiVisibilityChange += Tv_SystemUiVisibilityChange; } |
در فرایند کلیک دکمه ها به SystemUiVisibility از طریق textview دسترسی داشته باشیم و سه حالت ممکن را بررسی کنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
private void Mbtn3_Click(object sender, EventArgs e) { tv.SystemUiVisibility = (StatusBarVisibility)View.SystemUiFlagVisible; } private void Mbtn2_Click(object sender, EventArgs e) { tv.SystemUiVisibility = (StatusBarVisibility)View.SystemUiFlagHideNavigation; } private void Mbtn1_Click(object sender, EventArgs e) { tv.SystemUiVisibility = (StatusBarVisibility)View.SystemUiFlagLowProfile; } |
طبق برنامه ای که نوشتیم ،هر زمانی که ما ، دکمه ایی رافشار میدهیم ، SystemUiVisibility در TEXTBOX تغییر میکند. پس میتوانیم از رویداد SystemUiVisibilityChange در TEXTBOX استفاده کنیم و مقدار TEXTBOX موجود در صفحه را برابر با وضعیت فعلی NAVIGATION BAR قرار دهیم.
1 2 3 4 5 6 |
private void Tv_SystemUiVisibilityChange(object sender, View.SystemUiVisibilityChangeEventArgs e) { tv.Text = String.Format("Visibility = {0}", e.Visibility); } |