2016-12-21 5 views
0

Xamarinフォームのネイティブバインド可能なビューのオプションでは、xamarinフォームページの1つに追加することでAndroid AutoCompleteTextViewを動作させることができるかどうかを確認したかったのです。コントロールはアンドロイドでページ上にレンダリングしますが、ドロップダウンをタイプすると表示されますが、問題の候補はドロップダウンが白で、その結果、見るのが容易ではありません。私の質問はXamarinフォーム - ネイティブバインド可能なビューとしてAndroid AutoCompleteTextViewを追加

  1. このアプローチを放棄し、カスタムレンダラを試してみるか、このページのネイティブビューを実装する必要がありますか?
  2. 私が選択したパスが大丈夫なら、テキストを別の色で表示するにはコントロールを微調整するにはどうすればよいですか?

ここで参照

のコードビュー

<?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からの提案がある(結果のスクリーンショットだです...あなたが十分に見えるならば]]
enter image description here

誰もが持っている可能性がありますすべての提案やポインターをいただければ幸いです。

おかげで、

エドウィン

--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)); 
     } 
    } 
+0

開発のためにいくつかのテンプレートを使用しましたか?あなたの 'BaseViewModel'とは何ですか? –

+0

@ GraceFeng-MSFTテンプレートを使用していませんが、BaseViewModelクラスを含むように投稿を編集しました。 –

答えて

0

私はSyncfusion Xamarin Formsパッケージを使うことに決めました。彼らはうまくいくと思われるクロスプラットフォームのオートコンプリートコントロールを持っています。誰かが興味を持っている場合、ここにリンクがありますhttps://www.syncfusion.com/products/xamarin

関連する問題