Xamarin Forms Custom SearchbarRenderer с циклом загрузки, например Netflix - PullRequest
0 голосов
/ 30 мая 2020
• 1000 * но я не знаю, как добавить круг выполнения и как с ним взаимодействовать. Думал добавить с помощью AddView, но при тестировании ничего не выскакивает.

Тест:

var _v = new Android.Widget.ImageView(Context) { };
_v.SetBackgroundColor(new Android.Graphics.Color(200, 0, 0));
var c = new LayoutParams(500, 500);
_v.LayoutParameters = c;
searchView.AddView(_v);

1 Ответ

0 голосов
/ 01 июня 2020

Я действительно хочу реализовать круг загрузки на панели поиска (переопределив кнопку отмены при загрузке) на android, например Netflix.

Согласно вашему описанию, вы хотите переопределить search_close_btn панели поиска с помощью другого значка, например круга загрузки? Я прав?

Если да, я предлагаю вам использовать настраиваемую визуализацию для изменения изображения search_close_btn панели поиска.

Во-первых, создайте настраиваемую панель поиска, которая наследует SearchBar в Form.cs.

public  class MySearchBar:SearchBar
{

}

Затем реализация пользовательского рендеринга на платформе Android.

[assembly: ExportRenderer(typeof(MySearchBar), typeof(MySearchBarRenderer))]

демонстрация пространства имен3.Droid {publi c class MySearchBarRenderer: SearchBarRenderer {publi c MySearchBarRenderer (Context context): base (context ) {

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

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

            int searchViewCloseButtonId = Control.Resources.GetIdentifier("android:id/search_close_btn", null, null);
            var closeIcon = searchView.FindViewById(searchViewCloseButtonId);
            (closeIcon as ImageView).SetImageResource(Resource.Drawable.plu3);
        }
    }
}

}

См. Gif:

enter image description here

О пользовательском рендеринге вы можете посмотрите:

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer/entry

...