gpt4 book ai didi

xamarin - 如何在 Xamarin.Forms 上使用 Android AutoCompleteTextView

转载 作者:行者123 更新时间:2023-12-04 15:19:52 24 4
gpt4 key购买 nike

我正在处理 Xamarin.forms项目,但我需要使用 Android.Widget.AutoCompleteTextView我该如何申请?
当我尝试添加 AutoCompleteTextView UserNameAutoComplete; 时至 ContentPage我收到以下错误:

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

cannot convert from 'Android.Widget.AutoCompleteTextView' to 'Xamarin.Forms.View'

最佳答案

Android.Widget.AutoCompleteTextViewView来自安卓。

PCL 解决方案:

您不能使用特定于平台的 View's关于 Xamarin 表单 (PCL) ContentPage .

使用平台特定 View你应该使用 custom render .
有一个blog post来自@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 this.Control is the AutoCompleteTextView, so you an manipulate it.
}
}
}

共享项目解决方案:

使用共享项目时,可以使用 Native Embedding , 喜欢:

    ...
var textView = new TextView (Forms.Context) { Text = originalText };
stackLayout.Children.Add (textView);
contentView.Content = textView.ToView();
...

关于xamarin - 如何在 Xamarin.Forms 上使用 Android AutoCompleteTextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37788731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com