【发布时间】:2021-08-25 15:24:20
【问题描述】:
我成功地在我的 Xamarin.Forms Android 项目中创建了一个自定义渲染器,以添加一个自定义后退按钮图标而不是本机后退按钮。我使用的渲染器如下:
public class MyNavigationPageRenderer: Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer
{
Context _context;
AndroidX.AppCompat.Widget.Toolbar _toolbar;
public MyNavigationPageRenderer(Context context) : base(context)
{
_context = context;
}
public override void OnViewAdded(Android.Views.View child)
{
base.OnViewAdded(child);
if (child.GetType() == typeof(AndroidX.AppCompat.Widget.Toolbar))
{
_toolbar = (AndroidX.AppCompat.Widget.Toolbar)child;
_toolbar.SetNavigationIcon(Resource.Drawable.Navigation_backbutton);
}
}
protected override void OnLayout(bool changed, int l, int t, int r, int b)
{
base.OnLayout(changed, l, t, r, b);
if (_toolbar != null)
{
if (_toolbar.NavigationIcon != null)
{
_toolbar.NavigationIcon = AndroidX.Core.Content.ContextCompat.GetDrawable(_context, Resource.Drawable.Navigation_backbutton);
}
}
}
}
在 Xamarin 中,因为我们需要为 Xamarin.IOS 项目提供单独的渲染器,所以我也需要在那里具有相同的逻辑。但由于使用的库和类不同,我不确定如何进行。任何有关如何进行相同操作的帮助表示赞赏。
【问题讨论】:
标签: xamarin xamarin.forms xamarin.ios custom-renderer