【问题标题】:Xamarin Forms - IOS - Hamburger Menu Header color differs from Status BarXamarin Forms - IOS - 汉堡菜单标题颜色与状态栏不同
【发布时间】:2018-10-03 10:58:00
【问题描述】:

我在 Xamarin Forms 应用程序中添加了一个汉堡菜单。问题是对于 IOS 设备,当单击菜单时,状态栏颜色不会像 Android 那样根据菜单标题颜色而改变。下面的图片可以看出区别。

这是母版页:

<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
                 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                 x:Class="MyProject.UI.Pages.Menu.MainPage"
                 xmlns:pages="clr-namespace:MyProject.UI.Pages.Menu"
                 xmlns:calendar="clr-namespace:MyProject.UI.Pages.Calendar;assembly=MyProject"
                 Title="Main">
        <MasterDetailPage.Master>
            <pages:HamburgerMenu x:Name="MasterPage" />
        </MasterDetailPage.Master>
        <MasterDetailPage.Detail>
            <NavigationPage>
                <x:Arguments>
                    <calendar:CalendarPage />
                </x:Arguments>
            </NavigationPage>
        </MasterDetailPage.Detail>
    </MasterDetailPage>

IOS Hamburger menu, Android Hamburger menu

【问题讨论】:

    标签: android ios xamarin.forms hamburger-menu


    【解决方案1】:

    对于 android,它是 Statusbar 的默认颜色,即默认显示,您可以在 Styles.xml 文件夹下的 Styles.xml 文件中找到类似 &lt;item name="colorPrimaryDark"&gt;#4286f4&lt;/item&gt; 的颜色。

    您可以手动更改 iOS 的状态栏颜色:
    在 LoadApplication 之前将此代码写入您的 AppDelegate.cs 文件中

    var statusBar = UIApplication.SharedApplication.ValueForKey(new NSString("statusBar")) as UIView;
        if (statusBar.RespondsToSelector(new ObjCRuntime.Selector("setBackgroundColor:")))
        {
            statusBar.BackgroundColor = UIColor.FromRGB(66, 134, 244);
            statusBar.TintColor = UIColor.White;
        }
    

    希望这能解决您的问题。

    【讨论】:

      猜你喜欢
      • 2019-04-19
      • 2017-10-29
      • 2018-11-09
      • 2021-10-20
      • 2017-07-04
      • 1970-01-01
      • 2017-07-20
      • 2017-05-28
      相关资源
      最近更新 更多