我有一个Xamarin.Forms应用程序,并希望将NavigationBar设置为半透明。但是当我这么做的时候,我会发现Xamarin的观点很奇怪:
ListViews或TableViews行为正确。但是,当我将它们包装在一个RefreshView中时,它们会被UINavigationBar重叠。
-- TRANSLUCENCY WITHOUT REFRESHVIEW: OKAY
<ContentPage>
<ListView>
...
</ListView>
</ContentPage>-- TRANSLUCENCY WITHOUT REFRESHVIEW: BUGGY
<ContentPage>
<RefreshView> <----
<ListView>
...
</ListView>
</RefreshView>
</ContentPage>

我是不是遗漏了什么?
发布于 2020-06-10 01:30:51
我们可以使用navigationPage.BarBackgroundColor = Color.Transparent来实现这一点。
修改后的NavigateFromMenu方法如下:
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;
}效果:

https://stackoverflow.com/questions/62276504
复制相似问题