更改 SearchView 搜索图标 Xamarin.Android [英] Changing SearchView Search Icon Xamarin.Android

查看:29
本文介绍了更改 SearchView 搜索图标 Xamarin.Android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试更改 SearchBarRenderer Android 自定义渲染器中的搜索图标

I'm trying to change the search icon in a SearchBarRenderer Android custom renderer

这就是我试过的

 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 始终为空

However, searchIcon is always null

当我循环遍历 SearchView 的子项时,我发现 ID 16909229 的图像视图,但设置图像可绘制并没有改变搜索图标

When I looped through the children of SearchView I found and image view with ID 16909229 but setting the image drawable of that didn't change the search icon

推荐答案

我正在尝试更改 SearchBarRenderer Android 自定义渲染器中的搜索图标

I'm trying to change the search icon in a SearchBarRenderer Android custom renderer

像这样修改你的代码:

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

效果.

这篇关于更改 SearchView 搜索图标 Xamarin.Android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆