2016-09-08 19 views
5

Tôi đang cố đặt kiểu chữ tùy chỉnh trên Hint của số TextInputLayout. Vì vậy, tôi đang sử dụng một lớp con tùy chỉnh của TextInputLayout với thuộc tính tùy chỉnh MyHint. Trình thiết lập thuộc tính này sẽ định dạng văn bản và đặt FormattedText nhưng nó không hoạt động.Đặt kiểu chữ tùy chỉnh trên Gợi ý, TextInputLayout

Nếu tôi chỉ cần đặt thuộc tính FormattedHint thì nó cũng không định dạng. Có ai tại sao những cách tiếp cận này không thành công?

Dưới đây bạn có thể thấy lớp tùy chỉnh của tôi với thuộc tính.

Ví dụ:

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

Class:

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

Trả lời

0

Tôi nghĩ rằng bạn sẽ cần phải sử dụng:

userNameInput.Typeface = yourCustomTypeFace; 

Tôi không thấy nhiều lợi ích cho sub-class của bạn với thuộc tính này, mặc dù bạn chắc chắn có thể làm:

public class BaseTextInputLayout: TextInputLayout 
{ 
    public string MyHint 
    { 
     get 
     { 
      return Hint; 
     } 
     set { 
      if (value != null) 
      { 
       this.Typeface = yourCustomTypeFace; 
       this.Hint = value; 
      } 
      else 
      { 
       this.Hint = null; 
      } 
     } 
    } 
Các vấn đề liên quan