Изменение ПоискПоиск Значок поиска Xamarin.Android - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь изменить значок поиска в пользовательском рендере SearchBarRenderer для Android

, и это то, что я пробовал

 Control.Iconified = false;
 Control.SetIconifiedByDefault(false);

 var searchView = Control.FindViewById<ImageView>(Resource.Id.search_button);
 var searchicon = Resources.GetDrawable(Resource.Drawable.search);
 searchView.SetImageDrawable(searchicon);

Однако searchIcon всегда равен нулю

Когда я перебрал детей SearchView, я обнаружил и просмотр изображения с идентификатором 16909229 , но установка изображения, которое можно нарисовать, не изменила значок поиска

Ответы [ 2 ]

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

Я пытаюсь изменить значок поиска в пользовательском средстве поиска SearchBarRenderer для Android

Измените ваш код следующим образом:

[assembly:ExportRenderer(typeof(SearchBar), typeof(MySearchBarRenderer))]
namespace yourprjectnamespace
{
    public class MySearchBarRenderer : SearchBarRenderer
    {
        public MySearchBarRenderer(Context context) : base(context)
        {
        }

        protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.SearchBar> e)
        {
            base.OnElementChanged(e);

            if (Control != null)
            {
                var searchView = Control;

                int searchViewCloseButtonId = Control.Resources.GetIdentifier("android:id/search_mag_icon", null, null);

                var closeIcon = searchView.FindViewById(searchViewCloseButtonId);
                (closeIcon as ImageView).SetImageResource(Resource.Mipmap.icon);
            }
        }
    }
}

Эффект .

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

Если вы используете android.support.v7.widget.SearchView, вы можете попытаться установить его так:

var searchIcon = (ImageView) searchView.FindViewById(Resource.Id.search_mag_icon);
searchIcon.SetImageResource(Resource.Drawable.my_custom_search_icon);

Источник: https://stackoverflow.com/a/20362491/6248510 это не тот же вопрос, но он связан с ним и вответ включен способ установить

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