Android.Widget.AutoCompleteTextView
является View
от Android.
Раствор для PCL:
Вы не можете использовать платформу конкретной View's
на Xamarin форм (PCL) ContentPage
.
Чтобы использовать конкретную платформу View
, вы должны использовать custom render. Существует blog post от @JamesMontemagno, который показывает, как делать то, что вам нужно.
Этот код draft пример используйте его как таковой.
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 this.Control is the AutoCompleteTextView, so you an manipulate it.
}
}
}
Решение для общего проекта:
При использовании Shared проекта есть возможность использовать Native Embedding, как:
...
var textView = new TextView (Forms.Context) { Text = originalText };
stackLayout.Children.Add (textView);
contentView.Content = textView.ToView();
...
могли бы вы дать шаг, чтобы сделать это или добавить код ..thanks –
благодаря jzeferion ..если вам будут familare с пользовательскими рендеринг, не могли бы вы добавить код для ответа, который содержит шаги. –
Я добавил простой пример, чтобы объяснить, как работает рендеринг. Для более подробной информации, пожалуйста, прочитайте полный пост в блоге. – jzeferino