Vincent Poirier
Vincent Poirier

Reputation: 4316

How do you make a ContentPage fullscreen?

In Xamarin.Forms 1.3+, how do you make a ContentPage fullscreen? The most basic exemple of a ContentPage is the one provided upon creating a Xamarin.Forms Portable project.

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!"
                }
            }
        }
    };
}

More info (Android): https://developer.android.com/training/system-ui/immersive.html

Upvotes: 4

Views: 12829

Answers (3)

Habeeb
Habeeb

Reputation: 8007

Step 1 in making a full screen is by hiding the Navigation Bar. This can be controlled while Navigating to the View.

FullScreenVideoPlayerPage fullScreenVideoPage = new FullScreenVideoPlayerPage();
NavigationPage.SetHasNavigationBar(fullScreenVideoPage, false);
await Navigation.PushAsync(fullScreenVideoPage);

Remember to use async keyword in Method Signature when using await.

private async void FullScreenVideoPlayerPage_Clicked(object sender, EventArgs e)

Step 2 is to hide the Android Status Bar. But seems this is not standard with Android. I was not fully successful in completely hiding this bar. But I could hide the status icons by:

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;
}

Upvotes: 0

Balaji
Balaji

Reputation: 372

your content page is fullscreen . You can check by changing the background color of your content page. Try this following code

BackgroundColor = Color.White

Upvotes: 0

RoelV
RoelV

Reputation: 121

Your ContentPage is fullscreen. Only the content in your ContentPage does not fill your entire screen.
You can try something like this:

HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalOptions = LayoutOptions.FillAndExpand,

Upvotes: 1

Related Questions