blob: a24aabe6dab111ba7033cf998ba0617a866d7c9e (
plain)
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
using System.Windows.Input;
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
namespace Xamarin.Forms.Controls.GalleryPages.PlatformSpecificsGalleries
{
public class NavigationPageiOS : NavigationPage
{
public NavigationPageiOS(Page root, ICommand restore) : base(root)
{
BackgroundColor = Color.Pink;
On<iOS>().EnableTranslucentNavigationBar();
CurrentPage.On<iOS>().SetPreferredStatusBarUpdateAnimation(UIStatusBarAnimation.Fade);
}
public static NavigationPageiOS Create(ICommand restore)
{
var restoreButton = new Button { Text = "Back To Gallery" };
restoreButton.Clicked += (sender, args) => restore.Execute(null);
var translucentToggleButton = new Button { Text = "Toggle Translucent NavBar" };
var togglePrefersStatusBarHiddenButton = new Button
{
Text = "Toggle PrefersStatusBarHidden"
};
var togglePreferredStatusBarUpdateAnimationButton = new Button
{
Text = "Toggle PreferredStatusBarUpdateAnimation"
};
var content = new ContentPage
{
Title = "Navigation Page Features",
Content = new StackLayout
{
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center,
Children = { translucentToggleButton, restoreButton, togglePrefersStatusBarHiddenButton, togglePreferredStatusBarUpdateAnimationButton}
}
};
var navPage = new NavigationPageiOS(content, restore);
translucentToggleButton.Clicked += (sender, args) => navPage.On<iOS>().SetIsNavigationBarTranslucent(!navPage.On<iOS>().IsNavigationBarTranslucent());
togglePrefersStatusBarHiddenButton.Command = new Command(() =>
{
var mode = navPage.CurrentPage.On<iOS>().PrefersStatusBarHidden();
if (mode == StatusBarHiddenMode.Default)
navPage.CurrentPage.On<iOS>().SetPrefersStatusBarHidden(StatusBarHiddenMode.True);
else if (mode == StatusBarHiddenMode.True)
navPage.CurrentPage.On<iOS>().SetPrefersStatusBarHidden(StatusBarHiddenMode.False);
else
navPage.CurrentPage.On<iOS>().SetPrefersStatusBarHidden(StatusBarHiddenMode.Default);
});
togglePreferredStatusBarUpdateAnimationButton.Command = new Command(() =>
{
var animation = navPage.On<iOS>().PreferredStatusBarUpdateAnimation();
if (animation == UIStatusBarAnimation.Fade)
navPage.On<iOS>().SetPreferredStatusBarUpdateAnimation(UIStatusBarAnimation.Slide);
else if (animation == UIStatusBarAnimation.Slide)
navPage.On<iOS>().SetPreferredStatusBarUpdateAnimation(UIStatusBarAnimation.None);
else
navPage.On<iOS>().SetPreferredStatusBarUpdateAnimation(UIStatusBarAnimation.Fade);
});
return navPage;
}
}
}
|