ошибка при смене языка верхнего меню - PullRequest
0 голосов
/ 27 мая 2020

Хочу поменять иконку при смене языка телефона. Используйте этот код, чтобы нарисовать верхнее меню. Если язык телефона изменится, значок выхода будет перевернут.

Значок будет выглядеть так, если язык телефона - араби c и его естественная форма. enter image description here

Значок будет выглядеть так, если язык телефона английский sh, а он не нормальный и перевернутый enter image description here

<?xml version="1.0" encoding="utf-8"?>
<menu
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/back"
        android:icon="@drawable/menue_backe"
        android:title="close"
        app:showAsAction="ifRoom"/>
</menu>


 public override bool OnCreateOptionsMenu(IMenu menu)
        {
            MenuInflater.Inflate(Resource.Menu.toolbar_menub, menu);
            return base.OnPrepareOptionsMenu(menu);
        }

        public override bool OnOptionsItemSelected(IMenuItem item)
        {
            switch (item.ItemId)
            {
                case Resource.Id.back:
                    //do something

                    Finish();

                    return true;

            }
            return base.OnOptionsItemSelected(item);
        }
        //

1 Ответ

1 голос
/ 29 мая 2020

Вы можете попробовать следующие способы изменить значок кнопки «Назад» :

ActionBar.SetDisplayHomeAsUpEnabled(true);
ActionBar.SetHomeAsUpIndicator(Resource.Mipmap.Icon); // here modify the image as your need

Затем измените его, посмеиваясь при необходимости Activity :

protected override void OnResume()
{
    base.OnResume();

    string locale = Locale.Default.Language;
    //System.Console.WriteLine("-----"+locale);
    if (locale == "en")
    {
        ActionBar.SetDisplayHomeAsUpEnabled(true);
        ActionBar.SetHomeAsUpIndicator(Resource.Mipmap.Icon);
    }
    else
    {
        // other language
    }
}
...