Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当设置为半透明时,Xamarin视图与UINavigationBar重叠_Xamarin_Xamarin.forms_Uinavigationbar_Translucency - Fatal编程技术网

当设置为半透明时,Xamarin视图与UINavigationBar重叠

当设置为半透明时,Xamarin视图与UINavigationBar重叠,xamarin,xamarin.forms,uinavigationbar,translucency,Xamarin,Xamarin.forms,Uinavigationbar,Translucency,我有一个Xamarin.Forms应用程序,希望将导航栏设置为半透明。但当我这样做的时候,我会在Xamarin的观点中得到一种奇怪的行为: ListView或TableView的行为正常。但是当我把它们包在一个盒子里时,它们被UINavigationBar重叠了 -- TRANSLUCENCY WITHOUT REFRESHVIEW: OKAY <ContentPage> <ListView> ... </ListView>

我有一个Xamarin.Forms应用程序,希望将导航栏设置为半透明。但当我这样做的时候,我会在Xamarin的观点中得到一种奇怪的行为:

ListView或TableView的行为正常。但是当我把它们包在一个盒子里时,它们被UINavigationBar重叠了

-- TRANSLUCENCY WITHOUT REFRESHVIEW: OKAY

<ContentPage>
    <ListView>
        ...
    </ListView>
</ContentPage>
——无刷新的半透明视图:好的
...
——无刷新的半透明视图:BUGGY

我们可以使用
navigationPage.BarBackgroundColor=Color.Transparent
来实现这一点

导航菜单
方法修改如下:

case (int)MenuItemType.TranslucentWithoutRefreshView:
    MenuPages.Add(id, CreateTranslucentNavigationPage(new TranslucentWithRefreshPage(),false));
    break;
case (int)MenuItemType.TranslucentWithRefreshView:
    MenuPages.Add(id, CreateTranslucentNavigationPage(new TranslucentWithRefreshPage(),true));
    break;
然后在
CreateTranslucentNavigationPage
方法中:

private Xamarin.Forms.NavigationPage CreateTranslucentNavigationPage(Xamarin.Forms.Page page, bool value)
{
    var navigationPage = new Xamarin.Forms.NavigationPage(page);
    if (value)
    {
        navigationPage.BarBackgroundColor = Color.Transparent;
        navigationPage.BarTextColor = Color.Black;
    }
    //Xamarin.Forms.PlatformConfiguration.iOSSpecific.NavigationPage.SetIsNavigationBarTranslucent(navigationPage, true);
    return navigationPage;
}
其效果是:


这很奇怪,我将检查共享github项目。如果好的解决方案会在这里更新讨论。谢谢江的帮助。然而,这不是我想要做的。设置背景色很重要,但我希望有半透明(非透明)的导航条来构建这样的效果:@Waescher知道了,这很奇怪。如果好消息会在这里更新,我将对此进行检查。
private Xamarin.Forms.NavigationPage CreateTranslucentNavigationPage(Xamarin.Forms.Page page, bool value)
{
    var navigationPage = new Xamarin.Forms.NavigationPage(page);
    if (value)
    {
        navigationPage.BarBackgroundColor = Color.Transparent;
        navigationPage.BarTextColor = Color.Black;
    }
    //Xamarin.Forms.PlatformConfiguration.iOSSpecific.NavigationPage.SetIsNavigationBarTranslucent(navigationPage, true);
    return navigationPage;
}