2017-03-16 5 views
1

AndroidのSearchBar Controlの黒いアンダーラインを削除しようとしています。Xamarin - AndroidでSearchBarアンダーラインを削除する

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

これは、入力フィールドのために働くようだが、ないSearchBars:私はこれを実現するだろうと思っCustomRender、ない幸運を書きました。カスタムレンダラでSearchBarの下線を削除する方法を知っている人はいますか?ありがとう!

答えて

4

カスタムレンダラーの作成については正しいですが、レンダラーで下線を削除するには、ネイティブのアンドロイド版のプレート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)); 
    } 
} 
関連する問題