Xamarin.forms 如何使ContentPage全屏显示?

Xamarin.forms 如何使ContentPage全屏显示?,xamarin.forms,Xamarin.forms,在Xamarin.Forms 1.3+中,如何制作ContentPage全屏? ContentPage最基本的示例是创建Xamarin.Forms可移植项目时提供的示例 public App (){ // The root page of your application MainPage = new ContentPage { Content = new StackLayout { VerticalOptions = LayoutOpti

在Xamarin.Forms 1.3+中,如何制作
ContentPage
全屏?
ContentPage
最基本的示例是创建Xamarin.Forms可移植项目时提供的示例

public App (){
    // The root page of your application
    MainPage = new ContentPage {
        Content = new StackLayout {
            VerticalOptions = LayoutOptions.Center,
            Children = {
                new Label {
                    XAlign = TextAlignment.Center,
                    Text = "Welcome to Xamarin Forms!"
                }
            }
        }
    };
}

更多信息(Android):

您的内容页面是全屏的。只有ContentPage中的内容不会填满整个屏幕
您可以尝试以下方法:


您的内容页是全屏的。您可以通过更改内容页的背景色进行检查。请尝试以下代码


BackgroundColor=Color.White

制作全屏的第一步是隐藏导航栏。这可以在导航到视图时进行控制

FullScreenVideoPlayerPage fullScreenVideoPage = new FullScreenVideoPlayerPage();
NavigationPage.SetHasNavigationBar(fullScreenVideoPage, false);
await Navigation.PushAsync(fullScreenVideoPage);
当使用wait时,请记住在方法签名中使用async关键字

private async void FullScreenVideoPlayerPage_Clicked(object sender, EventArgs e)
第二步是隐藏Android状态栏。但这似乎不是Android的标准配置。我没有完全成功地完全隐藏这个酒吧。但我可以通过以下方式隐藏状态图标:

using Android.App;
using Android.Views;

//......

// Call this method from the constructor after InitializeComponent ();
public void HideStatusBar()
{
var activity = (Activity)Forms.Context;
var window = activity.Window;
var attrs = window.Attributes;
attrs.Flags |= Android.Views.WindowManagerFlags.Fullscreen;
window.Attributes = attrs;

window.ClearFlags(WindowManagerFlags.ForceNotFullscreen);
window.AddFlags(WindowManagerFlags.Fullscreen);

var decorView = window.DecorView;

var uiOptions =
    (int)Android.Views.SystemUiFlags.LayoutStable |
    (int)Android.Views.SystemUiFlags.LayoutHideNavigation |
    (int)Android.Views.SystemUiFlags.LayoutFullscreen |
    (int)Android.Views.SystemUiFlags.HideNavigation |
    (int)Android.Views.SystemUiFlags.Fullscreen |
    (int)Android.Views.SystemUiFlags.Immersive;

decorView.SystemUiVisibility = (Android.Views.StatusBarVisibility)uiOptions;

window.DecorView.SystemUiVisibility = StatusBarVisibility.Hidden;
}

我刚试过,但它没有全屏显示。以下是关于Android上真正全屏的更多信息,作为示例。应该没有标题栏来隐藏你可以使用的标题栏。MainMenuPage MainMenuPage=新的MainMenuPage();NavigationPage.SetHasNavigationBar(mainMenuPage,false);wait Navigation.PushAsync(mainMenuPage);真正的全屏不会显示标题栏和通知栏(时间在哪里)。您的代码可以正常工作,但不像上一个链接中显示的真正的Android全屏。图1是正常的,图3是真实的全屏:
using Android.App;
using Android.Views;

//......

// Call this method from the constructor after InitializeComponent ();
public void HideStatusBar()
{
var activity = (Activity)Forms.Context;
var window = activity.Window;
var attrs = window.Attributes;
attrs.Flags |= Android.Views.WindowManagerFlags.Fullscreen;
window.Attributes = attrs;

window.ClearFlags(WindowManagerFlags.ForceNotFullscreen);
window.AddFlags(WindowManagerFlags.Fullscreen);

var decorView = window.DecorView;

var uiOptions =
    (int)Android.Views.SystemUiFlags.LayoutStable |
    (int)Android.Views.SystemUiFlags.LayoutHideNavigation |
    (int)Android.Views.SystemUiFlags.LayoutFullscreen |
    (int)Android.Views.SystemUiFlags.HideNavigation |
    (int)Android.Views.SystemUiFlags.Fullscreen |
    (int)Android.Views.SystemUiFlags.Immersive;

decorView.SystemUiVisibility = (Android.Views.StatusBarVisibility)uiOptions;

window.DecorView.SystemUiVisibility = StatusBarVisibility.Hidden;
}