2016-09-08 12 views
5

Próbuję ustawić niestandardowy krój pisma na Hint z TextInputLayout. Dlatego używam niestandardowej podklasy TextInputLayout z niestandardową właściwością MyHint. Ten zestaw właściwości powinien sformatować tekst i ustawić wartość FormattedText, ale nie działa.Ustaw niestandardowy krój w Podpowiedź, TextInputLayout

Jeśli po prostu ustawię właściwość FormattedHint, również ona nie zostanie sformatowana. Czy ktokolwiek, dlaczego te podejścia się nie sprawdzają?

Poniżej możesz zobaczyć moją własną klasę z właściwością.

Przykład:

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

Klasa:

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; 
       } 
      } 
     } 

Odpowiedz

0

myślę, że będzie trzeba użyć:

userNameInput.Typeface = yourCustomTypeFace; 

Nie widzę wiele korzyści do sub-klasie ta właściwość, choć możesz oczywiście:

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