2016-06-25 12 views
3

Xamarinフォームを使用してクロスプラットフォームアプリケーションを構築していますが、AndroidでレンダリングするときにEntryエレメントのプレースホルダーテキストに問題があります。プレースホルダはiOSでは期待通りに表示されますが、Androidでは空白です。 Googleで検索したところ、基本的にAndroidテキストエディタフィールドにはプレースホルダプロパティがなく、その代わりにヒントを設定する必要があります。Androidプレースホルダー Xamarinフォームのヒントテキスト

私が理解できないことは、これをプログラムで行う方法です。私はEditorクラスを拡張する方法を知っていますが、次に、XamarinのフォームにAndroidの場合、プレースホルダが設定されているときにヒントを割り当てるために、エントリセルがカスタムエディタ要素に関連する必要があります。それとも良い方法がありますか?事前のおかげで

答えて

4

Xamarinフォームの入力ビューは、同様にAndroid上で動作するプレースホルダのプロパティがあります:あなたがいる場合

Entry myEntry = new Entry 
{ 
    Placeholder = "This is a placeholder" 
}; 

:これは、エントリのplcaeholderを定義する例がある https://developer.xamarin.com/api/property/Xamarin.Forms.Entry.Placeholder/

をカスタムレンダラーを使用しても、カスタムエントリでPCLプロジェクトのプレースホルダを使用することも、カスタムレンダラのコントロールのHintプロパティを次の方法で使用することもできます。

public class MyEntryRenderer: EntryRenderer 
{ 
    protected override void OnElementChanged(ElementChangedEventArgs<Entry> e) 
    { 
     base.OnElementChanged(e); 
     if (Control != null) 
     {         
      Control.Hint = "This is my placeholder";       
     }   

    } 
} 

まだ動作しない場合は、Xamarin.Formsナゲットパッケージを最新バージョンに更新することをお勧めします。

+0

完璧、ありがとう。古いバージョンであった必要があります。 Nugetパッケージを更新すると修正されました。 – Crwydryn

+0

嬉しいです:) –

関連する問題