我使用Xamarin 4.5进行开发,但我不知道如何让我的应用程序覆盖整个屏幕(全屏)。
适用于Android和iOS。
注意:我不仅想要图片或视频覆盖整个屏幕,而是整个应用程序都应该覆盖整个屏幕。
更新2020-04-29 我找到了一半的解决方案,只针对Android部分(在FabriBertani的帮助下包括状态栏)。我测试过它,它可以很好地工作。现在我必须找到iPhone的解决方案(或者至少找到一种在iPhone上测试的方法)。
我使用Xamarin 4.5进行开发,但我不知道如何让我的应用程序覆盖整个屏幕(全屏)。
适用于Android和iOS。
注意:我不仅想要图片或视频覆盖整个屏幕,而是整个应用程序都应该覆盖整个屏幕。
更新2020-04-29 我找到了一半的解决方案,只针对Android部分(在FabriBertani的帮助下包括状态栏)。我测试过它,它可以很好地工作。现在我必须找到iPhone的解决方案(或者至少找到一种在iPhone上测试的方法)。
this.Window.AddFlags(WindowManagerFlags.Fullscreen);
对于iOS,将以下值添加到info.plist
文件中:
<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
编辑: 如果你想同时移除工具条,只需在你的XAML页面中添加以下内容:
NavigationPage.HasNavigationBar="False"
或在C#代码后台
public YourPage()
{
InitializeComponent();
NavigationPage.SetHasNavigationBar(this, false);
}
public class BaseContentPage : ContentPage
{
public BaseContentPage
{
NavigationPage.SetHasNavigationBar(this, false);
}
}
并在XAML中使用它:
<?xml version="1.0" encoding="UTF-8"?>
<local:BaseContentPage
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:YourNamespace.Pages"
x:Class="YourNamespace.Pages.YourPage">
</local:BaseContentPage>
这只是解决方案的一部分。对于Android:
在Android项目中,在MainActivity.OnCreate中添加以下内容:
this.Window.AddFlags(WindowManagerFlags.Fullscreen); // Hide StatusBar, from FabriBertani
MessagingCenter.Subscribe<Object>(this, "HideOsNavigationBar", (sender) =>
{
int uiOptions = (int)Window.DecorView.SystemUiVisibility;
uiOptions |= (int)SystemUiFlags.HideNavigation;
Window.DecorView.SystemUiVisibility = (StatusBarVisibility) SystemUiFlags.HideNavigation;
});
MessagingCenter.Send<Object>(this, "HideOsNavigationBar");