Xamarinフォームのネイティブバインド可能なビューのオプションでは、xamarinフォームページの1つに追加することでAndroid AutoCompleteTextViewを動作させることができるかどうかを確認したかったのです。コントロールはアンドロイドでページ上にレンダリングしますが、ドロップダウンをタイプすると表示されますが、問題の候補はドロップダウンが白で、その結果、見るのが容易ではありません。私の質問はXamarinフォーム - ネイティブバインド可能なビューとしてAndroid AutoCompleteTextViewを追加
- このアプローチを放棄し、カスタムレンダラを試してみるか、このページのネイティブビューを実装する必要がありますか?
- 私が選択したパスが大丈夫なら、テキストを別の色で表示するにはコントロールを微調整するにはどうすればよいですか?
ここで参照
のコードビュー
<?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からの提案がある(結果のスクリーンショットだです...あなたが十分に見えるならば]]
誰もが持っている可能性がありますすべての提案やポインターをいただければ幸いです。
おかげで、
エドウィン
--edit ここで要求された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));
}
}
開発のためにいくつかのテンプレートを使用しましたか?あなたの 'BaseViewModel'とは何ですか? –
@ GraceFeng-MSFTテンプレートを使用していませんが、BaseViewModelクラスを含むように投稿を編集しました。 –