我正在编写xamarin表单。我想改变Toolbar返回图标,如何做到这一点。我搜了很多遍。我没有得到正确的解决办法。任何帮助都将不胜感激。谢谢praveen
发布于 2018-09-12 11:40:44
尝尝这个
LoadApplication(new App());
var upArrow = Resources.GetDrawable(Resource.Drawable.abc_ic_ab_back_mtrl_am_alpha);
upArrow.SetColorFilter(Resources.GetColor(Resource.Color.white), PorterDuff.Mode.SrcIn);
ActionBar.SetHomeAsUpIndicator(upArrow);参考文献
https://forums.xamarin.com/discussion/57791/cant-change-android-back-button-in-xamarin-forms
发布于 2018-09-13 05:03:00
如何在xamarin forms android中更改工具栏返回图标
你可以参考我的回答:How to change navigation page back button in xamarin forms.
我在这里再写一遍:
我们需要自定义一个NavigationPageRenderer**,重写** OnPushAsync 方法来设置 Toolbar**'s导航图标。
using AToolbar = Android.Support.V7.Widget.Toolbar;
[assembly: ExportRenderer(typeof(CustomNavigationPage), typeof(NavigationPageRendererDroid))] // APPCOMP
...
public class NavigationPageRendererDroid : Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer // APPCOMP
{
public AToolbar toolbar;
public Activity context;
protected override Task<bool> OnPushAsync(Page view, bool animated)
{
var retVal = base.OnPushAsync(view, animated);
context = (Activity)Xamarin.Forms.Forms.Context;
toolbar = context.FindViewById<Android.Support.V7.Widget.Toolbar>(Droid.Resource.Id.toolbar);
if (toolbar != null)
{
if (toolbar.NavigationIcon != null)
{
toolbar.NavigationIcon = Android.Support.V4.Content.ContextCompat.GetDrawable(context, Resource.Drawable.Back);
//toolbar.SetNavigationIcon(Resource.Drawable.Back);
}
}
return retVal;
}
}CustomNavigationPage在PCL中定义:
public class CustomNavigationPage : NavigationPage
{
public CustomNavigationPage(Page startupPage) : base(startupPage)
{
}
}用法:
public App()
{
InitializeComponent();
MainPage = new CustomNavigationPage(new MainPage());
}
...
// In MainPage
private async void Button_Clicked(object sender, EventArgs e)
{
await Navigation.PushAsync(new TestPage());
}效应.

https://stackoverflow.com/questions/52294052
复制相似问题