0

TextInputLayoutエラーをどのように水平に配置できますか?水平方向の中央にTextInputLayoutエラーが表示される

エラーテキストビューへの参照を取得するためにリフレクションを使用することを提案しているSOの投稿に出会った。私はリフレクションの使用を避けたい。

これを実現する方法は何ですか?

+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); 
      } 
     } 
    } 
} 
関連する問題