使用Xamarin表单,如何在不显示导航栏的情况下更改页面?

时间:2015-05-06 22:49:09

标签: mobile xamarin xamarin.forms

我想更改Xamarin Forms中的页面,为此我已经读过你需要使用NavigationPage作为根页面。我的问题是我无法摆脱顶部的导航栏。我尝试过使用SetHasNavigationBar,但它似乎无法正常工作

public App ()
{
    NavigationPage mypage = new NavigationPage (new PageOne ());
    NavigationPage.SetHasNavigationBar (mypage, false);
    MainPage = mypage;
}

结果:http://i870.photobucket.com/albums/ab261/j0sht/prob_zps4bmxtyvb.png

正如您从图像中看到的那样,顶部仍然有一个带有图标的栏

由于

1 个答案:

答案 0 :(得分:4)

我相信你必须在内页上调用NavigationPage.SetHasNavigationBar(),而不是在NavigationPage(你的情况下是mypage)中尝试执行以下操作:

var pageOne = new PageOne();
NavigationPage.SetHasNavigationBar (pageOne, false);
NavigationPage mypage = new NavigationPage (pageOne);
MainPage = mypage;

编辑如何消除Android上加载屏幕上的导航栏(基本上设置一个带有简单图像背景的虚拟启动页面,并在加载时重定向到您的真实主要活动(此时Xamarin Forms接管):

[Activity(MainLauncher = true, NoHistory = true, Theme = "@style/Theme.Splash",
ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class SplashScreen : Activity
{
    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        var intent = new Intent(this, typeof(MainActivity));
        StartActivity(intent);
    }
}

和启动画面的主题:

<style name="Theme.Splash" parent="android:Theme">
    <item name="android:windowBackground">@drawable/splashscreen</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsTranslucent">false</item>
    <item name="android:windowIsFloating">false</item>
    <item name="android:backgroundDimEnabled">true</item>
</style>