0

如何水平居中TextInputLayout錯誤?水平居中顯示TextInputLayout錯誤

我遇到了一個SO帖子,建議使用反射來獲取對錯誤textview的引用。我想避免使用反思。

有什麼方法可以實現這個目標?

+0

您是否找到解決方案? –

回答

0

您製作一個自己的類,它繼承自TextInputLayout。然後重寫ShowError(字符串文本,可繪製圖標)方法。如果錯誤被調用,則使用錯誤將textView居中。

public class TextInputLayout_Center : TextInputLayout 
{ 
    public override void ShowError(string text, Android.Graphics.Drawables.Drawable icon) 
    { 
     base.ShowError(text, icon); 

     centerErrorMessage(this); 
    } 

    void centerErrorMessage(ViewGroup view) 
    { 
     for (int i = 0; i < view.ChildCount; i++) 
     { 
      View v = view.GetChildAt(i); 
      if (v.GetType() == typeof(TextView)) 
      { 
       v.LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.MatchParent, v.LayoutParameters.Height); 
       ((TextView)v).Gravity = GravityFlags.CenterHorizontal; 
       ((TextView)v).TextAlignment = TextAlignment.Center; 
      } 
      if (v is ViewGroup) 
      { 
       centerErrorMessage((ViewGroup)v); 
      } 
     } 
    } 
}