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