首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当设置为半透明时,UINavigationBar会重叠Xamarin视图。

当设置为半透明时,UINavigationBar会重叠Xamarin视图。
EN

Stack Overflow用户
提问于 2020-06-09 06:39:53
回答 1查看 103关注 0票数 2

我有一个Xamarin.Forms应用程序,并希望将NavigationBar设置为半透明。但是当我这么做的时候,我会发现Xamarin的观点很奇怪:

ListViews或TableViews行为正确。但是,当我将它们包装在一个RefreshView中时,它们会被UINavigationBar重叠。

代码语言:javascript
复制
-- TRANSLUCENCY WITHOUT REFRESHVIEW: OKAY

<ContentPage>
    <ListView>
        ...
    </ListView>
</ContentPage>
代码语言:javascript
复制
-- TRANSLUCENCY WITHOUT REFRESHVIEW: BUGGY

<ContentPage>
    <RefreshView>     <----
        <ListView>
            ...
        </ListView>
    </RefreshView>
</ContentPage>

我是不是遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2020-06-10 01:30:51

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

修改后的NavigateFromMenu方法如下:

代码语言:javascript
复制
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方法中:

代码语言:javascript
复制
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;
}

效果:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62276504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档