编程语言
首页 > 编程语言> > c# – Xamarin – 删除Android中的SearchBar下划线

c# – Xamarin – 删除Android中的SearchBar下划线

作者:互联网

我试图在Android上的SearchBar控件下删除黑色下划线.我写了一个我认为会完成这个的CustomRender,但没有运气:

[assembly: ExportRenderer(typeof(NoUnderlineSearchBar), typeof(NoUnderlineSearchBarRenderer))]
namespace XamarinDemo.Droid.CustomRenderers
{
    public class NoUnderlineSearchBarRenderer : SearchBarRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<SearchBar> e)
        {
            base.OnElementChanged(e);

            if (Control != null)
            {
                this.Control.SetBackgroundColor(Android.Graphics.Color.Argb(0, 0, 0, 0));
            }
        }
    }
}

这似乎适用于Entry字段,但不适用于SearchBars.有谁知道如何在自定义渲染器中删除SearchBar下划线?谢谢!

解决方法:

你是正确的创建一个自定义渲染器,但在你的渲染器,要删除下划线,我们需要首先在本机android中找到SearchView的盘子.你可以这样编码:

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

    if (Control != null)
    {
        var plateId = Resources.GetIdentifier("android:id/search_plate", null, null);
        var plate = Control.FindViewById(plateId);
        plate.SetBackgroundColor(Android.Graphics.Color.Transparent);
        //this.Control.SetBackgroundColor(Android.Graphics.Color.Argb(0, 0, 0, 0));
    }
}

标签:c,xamarin,xamarin-android,xamarin-forms,searchbar
来源: https://codeday.me/bug/20190611/1217829.html