当设置为半透明时,Xamarin视图与UINavigationBar重叠
我有一个Xamarin.Forms应用程序,希望将导航栏设置为半透明。但当我这样做的时候,我会在Xamarin的观点中得到一种奇怪的行为: ListView或TableView的行为正常。但是当我把它们包在一个盒子里时,它们被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>
-- 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;
}