更新到Xamarin.Forms 2.2后,Xamarin.Forms汉堡菜单图标消失了

时间:2016-04-29 08:41:28

标签: c# xamarin.forms master-detail hamburger-menu

在我将Xamarin.Forms 2.0的Xamarin.Forms项目更新为Xamarin.Forms 2.2后,汉堡图标消失了。

我没有运气直接搜索,有没有人遇到同样的问题?

3 个答案:

答案 0 :(得分:4)

如果默认图标消失,您可以设置自己的母版页图标,例如:

public class MasterPage : MasterDetailPage
{
    FlyOutMenuPage menu = new FlyOutMenuPage ();
    Master = menu;
}

public class FlyOutMenuPage : ContentPage
{
    Icon = "menu.png";
} 

而menu.png是一张资源图片,你可以从这里获得很多图标:

https://www.iconfinder.com/search/?q=hamburger&price=free

答案 1 :(得分:0)

矿井在Android中是隐藏的,因此我不得不编写一个自定义渲染器以应用颜色并设置不透明度以再次显示它:

[assembly: ExportRenderer(typeof(CustomNavigationPage), typeof(CustomNavigationRenderer))]

namespace App.Droid
{
    public class CustomNavigationRenderer : NavigationPageRenderer
    {

        public CustomNavigationRenderer(Context context) : base(context)
        {
        }

        protected override void OnLayout(bool changed, int l, int t, int r, int b)
        {
            base.OnLayout(changed, l, t, r, b);
            var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
            for (var i = 0; i < toolbar.ChildCount; i++)
            {
                var imageButton = toolbar.GetChildAt(i) as ImageButton;

                var hamburger = imageButton?.Drawable as DrawerArrowDrawable;
                if (hamburger == null)
                    continue;

                hamburger.Color = Context.GetColor(Resource.Color.primary_text_default_material_light);
                hamburger.Alpha = 255;
            }


        }
    }
}

答案 2 :(得分:0)

请注意,汉堡包菜单未显示在IOS版本上。