【发布时间】:2016-04-29 08:41:28
【问题描述】:
在我将 Xamarin.Forms 项目从 Xamarin.Forms 2.0 更新到 Xamarin.Forms 2.2 后,汉堡图标消失了。
我用谷歌搜索过,有没有人遇到过同样的问题?
【问题讨论】:
标签: c# xamarin.forms master-detail hamburger-menu
在我将 Xamarin.Forms 项目从 Xamarin.Forms 2.0 更新到 Xamarin.Forms 2.2 后,汉堡图标消失了。
我用谷歌搜索过,有没有人遇到过同样的问题?
【问题讨论】:
标签: c# xamarin.forms master-detail hamburger-menu
如果默认图标消失了,您可以设置自己的主页图标,例如:
public class MasterPage : MasterDetailPage
{
FlyOutMenuPage menu = new FlyOutMenuPage ();
Master = menu;
}
public class FlyOutMenuPage : ContentPage
{
Icon = "menu.png";
}
而menu.png是一个资源图片,你可以从这里得到很多图标:
【讨论】:
我的在 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;
}
}
}
}
【讨论】:
请注意,IOS 版本不显示汉堡菜单。
【讨论】: