如何将TextInputLayout错误水平居中?
我遇到过一篇SO帖子,建议使用反射来引用错误textview。我想避免使用反射。
我有什么方法可以做到这一点?
答案 0 :(得分:0)
您创建了一个继承自TextInputLayout的类。然后覆盖ShowError(字符串文本,Drawable图标)方法。如果调用错误,则将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);
}
}
}
}