因此,通过在Xamarin Forms中选择本机可绑定视图,我想看看是否可以通过添加到我的一个xamarin表单页面来使Android AutoCompleteTextView正常工作。控件确实在android中的页面上呈现,当我键入下拉列表时显示,但问题是建议下拉列表中的文本是白色的,因此不容易看到。我的问题是
以下是参考代码
视图
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:androidWidget="clr-namespace:Android.Widget;assembly=Mono.Android;targetPlatform=Android"
xmlns:formsandroid="clr-namespace:Xamarin.Forms;assembly=Xamarin.Forms.Platform.Android;targetPlatform=Android"
x:Class="AcoadApp.Views.AddMatchPage"
Title="New Match">
<StackLayout>
<androidWidget:AutoCompleteTextView Adapter="{Binding OppAdapter}" x:Arguments="{x:Static formsandroid:Forms.Context}" />
</StackLayout>
</ContentPage>
ViewModel
public class AddMatchViewModel : BaseViewModel
{
ArrayAdapter<Java.Lang.String> _oppAdapter;
public ArrayAdapter<Java.Lang.String> OppAdapter
{
get { return _oppAdapter; }
set { _oppAdapter = value; OnPropertyChanged(); }
}
public AddMatchViewModel(INavService navService)
:base(navService)
{
OppAdapter = new ArrayAdapter<Java.Lang.String>(Android.App.Application.Context, Android.Resource.Layout.SimpleDropDownItem1Line);
}
public override async Task Init()
{
LoadData();
}
void LoadData()
{
OppAdapter.Add(new Java.Lang.String("Seaside"));
OppAdapter.Add(new Java.Lang.String("Palma"));
OppAdapter.Add(new Java.Lang.String("Aptos"));
OppAdapter.Add(new Java.Lang.String("Harbor"));
OppAdapter.Add(new Java.Lang.String("Salinas"));
OppAdapter.Add(new Java.Lang.String("Anzar"));
}
}
以下是结果的截图(ArrayAdapter的建议是......如果你看得足够近=])
任何人可能提出的任何建议或指示都将不胜感激。
谢谢,
埃德
- 编辑 这是请求的BaseViewModel类
public abstract class BaseViewModel : INotifyPropertyChanged
{
protected INavService NavService { get; private set; }
protected BaseViewModel(INavService navService)
{
NavService = navService;
}
public abstract Task Init();
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
var handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
答案 0 :(得分:0)
使用XLabs AutoCompleteView或使用XLabs AutoCompleteView Droid代码进行自定义
https://github.com/XLabs/Xamarin-Forms-Labs/wiki/AutoComplete
答案 1 :(得分:0)
我决定使用Syncfusion Xamarin Forms包。他们有一个跨平台的AutoComplete控件似乎运行良好。如果有人有兴趣https://www.syncfusion.com/products/xamarin
,这是链接