2016-09-08 4 views
5

Ich versuche, eine benutzerdefinierte Schriftart auf Hint von TextInputLayout festzulegen. Daher verwende ich eine benutzerdefinierte Unterklasse von TextInputLayout mit einer benutzerdefinierten Eigenschaft MyHint. Dieser Property Setter sollte den Text formatieren und die FormattedText setzen, aber es funktioniert nicht.Legen Sie benutzerdefinierte Schriftart auf Tipp, TextInputLayout

Wenn ich einfach die FormattedHint Eigenschaft festlegen, formatiert es auch nicht. Weiß jemand, warum diese Ansätze scheitern?

Unten können Sie meine benutzerdefinierte Klasse mit Eigenschaft sehen.

Beispiel:

BaseTextInputLayout userNameInput = view.FindViewById<BaseTextInputLayout>(Resource.Id.myId); 
userNameInput.MyHint = "My Custom hint text"; 

Klasse:

public class BaseTextInputLayout: TextInputLayout 
    { 
     public string MyHint 
     { 
      get 
      { 
       return Hint; 
      } 
      set { 
       if (value != null) 
       { 
        SpannableStringBuilder builder = new SpannableStringBuilder(value); 
        builder.SetSpan(new CustomTypeFaceSpan("", Constants_Android.TYPEFACE_YOGA_MET_EVY_CUSTOMFONT), 0, builder.Length(), SpanTypes.InclusiveExclusive); 
        this.HintFormatted = builder; 
       } 
       else 
       { 
        this.HintFormatted = null; 
       } 
      } 
     } 

Antwort

0

Ich glaube, Sie verwenden müssen:

userNameInput.Typeface = yourCustomTypeFace; 

ich nicht viel Nutzen für Ihre Unterklasse sehen Diese Eigenschaft, obwohl Sie sicherlich tun könnten:

public class BaseTextInputLayout: TextInputLayout 
{ 
    public string MyHint 
    { 
     get 
     { 
      return Hint; 
     } 
     set { 
      if (value != null) 
      { 
       this.Typeface = yourCustomTypeFace; 
       this.Hint = value; 
      } 
      else 
      { 
       this.Hint = null; 
      } 
     } 
    } 
Verwandte Themen