NavigationPage 返回按钮是图标,因此您可以使用另一个更大的图标替换此图标。
对于 Android 平台,如果您的 MainActivity 类型为 FormsAppCompatActivity,您可以自定义 PageRenderer 并更改 Toolbar's NavigationIcon。
[assembly: ExportRenderer(typeof(ContentPage), typeof(NavigationPageRendererDroid))]
namespace FormsSample.Droid
{
public class NavigationPageRendererDroid : PageRenderer
{
public NavigationPageRendererDroid(Context context) : base(context)
{
}
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.Page> e)
{
base.OnElementChanged(e);
var context = (Activity)this.Context;
var toolbar = context.FindViewById<AndroidX.AppCompat.Widget.Toolbar>(Droid.Resource.Id.toolbar);
toolbar.NavigationIcon = AndroidX.Core.Content.ContextCompat.GetDrawable(context, Resource.Drawable.c1);
}
}
}
请注意:Android平台的ToolBar>资源文件夹>布局类型为androidx.appcompat.widget.Toolbar
如果你的 ToolBar 是其他类型的,你可以看看:
How to change navigation page back button in xamarin forms
更新:
我也重现了和你一样的问题,从我提供的线程中,你可以按照上一个解决方案,自定义一个 NavigationPageRenderer,重写 OnPushAsync 方法来设置 Toolbar 的图标。
首先,在 .NET Standard 项目中创建一个名为 CustomNavigationPage 的类,该类继承自 NavigationPage 以使我们的自定义渲染器应用于该类。
public class CustomNavigationPage : NavigationPage
{
public CustomNavigationPage(Page startupPage) : base(startupPage)
{
}
}
其次,在Android项目中,创建名为NavigationPageRenderer的类,重写OnPushAsync方法。
[assembly: ExportRenderer(typeof(CustomNavigationPage), typeof(NavigationPageRenderer))]
namespace FormsSample.Droid
{
public class NavigationPageRenderer : Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer
{
public Activity context;
public NavigationPageRenderer(Context context) : base(context)
{
}
protected override Task<bool> OnPushAsync(Page view, bool animated)
{
var retVal = base.OnPushAsync(view, animated);
var context = (Activity)this.Context;
var toolbar = context.FindViewById<AndroidX.AppCompat.Widget.Toolbar>(Droid.Resource.Id.toolbar);
if (toolbar != null)
{
if (toolbar.NavigationIcon != null)
{
toolbar.NavigationIcon = AndroidX.Core.Content.ContextCompat.GetDrawable(context, Resource.Drawable.c1);
toolbar.Title = "back";
}
}
return retVal;
}
}
}
最后,在 App.xaml.csfile 中,将 MainPage 设置为 NavigtaionPage,
MainPage = new CustomNavigationPage(new simplecontrol.Page41());