2017-03-16 80 views
1

我試圖刪除Android下的SearchBar控件下的黑色下劃線。我寫的,我認爲會做到這點CustomRender,但沒有運氣:Xamarin - 刪除搜索條Android中的下劃線

[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。有誰知道我可以如何刪除自定義渲染器中的SearchBar下劃線?謝謝!

回答

4

您對創建自定義渲染器是正確的,但在您的渲染器中,要刪除下劃線,我們需要首先在本機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)); 
    } 
}