Как изменить значок задней панели инструментов в формах xamarin для Android - PullRequest
0 голосов
/ 12 сентября 2018

Я работаю над xamarin формами. Я хотел изменить значок Toolbar назад, как это сделать. Я много об этом искал. Я не получил правильное решение. Любая помощь будет оценена. Спасибо Praveen

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Как изменить значок панели инструментов в формах xamarin для Android

Вы могли бы сослаться на мой ответ: Как изменить кнопку перехода на страницу навигации назад в формах xamarin.

Я снова пишу это здесь:

Нам нужно настроить NavigationPageRenderer, переопределить метод OnPushAsync, чтобы установить значок навигации Toolbar.

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());
}

[Эффект].

enter image description here

0 голосов
/ 12 сентября 2018

Попробуйте это

    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

https://forums.xamarin.com/discussion/103317/change-navigation-bar-back-button-color-in-xamarin-android

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...