Как использовать Android AutoCompleteTextView на Xamarin.Forms

Я работаю надXamarin.forms проект, но мне нужно использоватьAndroid.Widget.AutoCompleteTextView как я могу применить это? Когда я пытаюсь добавитьAutoCompleteTextView UserNameAutoComplete; вContentPage я получаю следующую ошибку:

Content = new StackLayout 
{                   
    VerticalOptions = LayoutOptions.Center,
    Padding = new Thickness(25),
    Children = 
    {
        UserNameAutoComplete,
        passwordEditor,
    }
};

невозможно преобразовать из «Android.Widget.AutoCompleteTextView» в «Xamarin.Forms.View»

Ответы на вопрос(1)

Решение Вопроса

Android.Widget.AutoCompleteTextView этоView с Android.

Решение для PCL:

Вы не можете использовать платформуView's на формах Xamarin (PCL)ContentPage.

Чтобы использовать платформуView Вы должны использоватьпользовательский рендер, EстьСообщение блога от @JamesMontemagno, который показывает, как делать то, что вам нужно.

Этот кодпример проекта пожалуйста, используйте его как таковой.

1 - Создайте свой собственный элемент управления Xamarin.Forms, который будет отображаться в Android какAutoCompleteTextView:

public class AutoCompleteView : View
{   
    // Place need properties here.    
}

2 - В проекте Android добавьте рендер дляAutoCompleteView:

[assembly: ExportRenderer(typeof(AutoCompleteView), typeof(AutoCompleteViewRenderer))]
namespace App.Droid
{
    public class AutoCompleteViewRenderer : ViewRenderer<AutoCompleteView, AutoCompleteTextView>
    {    
        // Initialize the AutoCompleteTextView
        protected override void OnElementChanged (ElementChangedEventArgs<AutoComplete> e)
        {
            base.OnElementChanged (e);

            if (e.OldElement != null || this.Element == null)
                return;

            var autoComplete = new AutoCompleteTextView(Forms.Context); 
            SetNativeControl (autoComplete);
        }

        // Use the control here.
        protected override void OnElementPropertyChanged (object sender, PropertyChangedEventArgs e) {
            base.OnElementPropertyChanged (sender, e);

            if (this.Element == null || this.Control == null)
              return;

            // variable t,his.Control is the AutoCompleteTextView, so you an manipulate it.
        }
    }
}

Решение для совместного проекта:

При использовании Shared Project есть возможность использоватьРодное вложение, лайк:

    ...
    var textView = new TextView (Forms.Context) { Text = originalText };
    stackLayout.Children.Add (textView);
    contentView.Content = textView.ToView();
    ...
 jzeferino13 июн. 2016 г., 14:09
Я добавил простой пример, чтобы объяснить, как работает рендер. Для более подробной информации, пожалуйста, прочитайте полный пост в блоге.
 Mike Darwish13 июн. 2016 г., 14:33
я пытаюсь использовать ваш ответ, на самом деле концепция должна заключаться в том, как встроить нативный контроль в xamarin .forms
 jzeferino13 июн. 2016 г., 14:34
Да, вот что я написал. Образец, который я сделал, и сообщение в блоге о том, как использовать встроенный элемент управления в формах.
 Mike Darwish13 июн. 2016 г., 13:38
Не могли бы вы сделать шаг, чтобы сделать это или добавить код .. спасибо
 jzeferino26 окт. 2017 г., 10:42
@ZiyadGodil вы должны сделать что-то похожее, но так как у iOS нет нативногоAutoCompleteView  Вы должны использовать внешнюю библиотеку для поддержки этого, например,этот, Вы также можете взглянуть наэтот.
 Ziyad Godil25 окт. 2017 г., 08:28
@jzeferino работает нормально в Android, что мне делать для iOS рендера?
 Mike Darwish13 июн. 2016 г., 13:49
спасибо jzeferion .. если вы знакомы с пользовательским рендер, не могли бы вы добавить код для вашего ответа содержит шаги ..

Ваш ответ на вопрос