Cómo hacer que el mensaje de error en TextInputLayout aparezca en el centro
Actualmente se ve como en adjunto con este diseño:
<android.support.design.widget.TextInputLayout android:id="@+id/layoutCurrentPW" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" app:errorEnabled="true">
¿Cómo configurar el mensaje de error "contraseña debe tener al menos 8 caracteres" para centrar la gravedad?
He intentado con android: gravedad = "centro", pero que no funcionó.
- Cómo lograr TextInputLayout animación al escribir el primer carácter en lugar de ganar el enfoque?
- Mostrar el texto del ayudante debajo de EditText junto con la sugerencia
- Cambiar TextInputLayout posición de pista a derecha
- No se pudo resolver resource @ id / visible cuando se utiliza TextInputLayout
- Cómo cambiar el tamaño de la pista de TextInputLayout
EDITAR
Diseño que incluye EditText:
<android.support.design.widget.TextInputLayout android:id="@+id/layoutCurrentPW" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" app:errorEnabled="true"> <EditText android:id="@+id/editTextCurrentPassword" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:layout_marginLeft="50dp" android:layout_marginRight="50dp" android:gravity="center" android:hint="@string/current_password" android:inputType="textPassword" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="@color/black" /> </android.support.design.widget.TextInputLayout>
- TextInputLayout.setError () deja espacio vacío después de borrar el error
- Cómo deshabilitar flotante mientras muestra error en TextInputLayout
- Cambiar la posición del texto de etiqueta flotante de TextInputLayout
- Android: TextInputLayout esconde drawableRight de un niño EditText
- EditText añadido no es un TextInputEditText. Por favor, cambie a usar esa clase en su lugar
- ¿Cómo se reduce el espacio entre la sugerencia editText flotante y el cuadro editText en Android?
- Cambiar el color del selector de contraseña de máscara
- TextInputLayout: ¿Cómo dar relleno o margen para sugerir?
Quería saber si hay alguna manera de manejarlo desde el marco … parece que no.
Pero el trabajo de TextInputLayout es:
– se mostrará una sugerencia en la parte superior de EditText cuando el usuario la toque.
– Los mensajes de error se mostrarán justo debajo de TextInputLayout y alineados para comenzar.
Tuve 40dp de left_margin a mi EditText debido a que la desalineación entre la indirecta y el mensaje de error. Así que por ahora, he eliminado left_margin 40dp de EditText y aplicado lo mismo a TextInputLayout por lo que ahora parece bien.
Lección aprendida 🙂 es si hay márgenes que deben aplicarse a EditText, mejor si es posible, se puede aplicar a TextInputLayout para mantener la sugerencia y los mensajes de error para ser colocados correctamente.
Aquí una solución que siempre centra el mensaje de error no importa cuán grande es su TextInputLayout.
Haces una clase propia que hereda de TextInputLayout . A continuación, sustituya el método ShowError (texto de cadena, icono Dibujable). Si se llama al error, centra el textView con el error.
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); } } } }
Lo logré estableciendo el margen inicial para la vista de error. A continuación, puede ver mi versión de setError
método setError
del componente TextInputLayout
.
@Override public void setError(@Nullable CharSequence errorText) { // allow android component to create error view if (errorText == null) { return; } super.setError(errorText); // find this error view and calculate start margin to make it look like centered final TextView errorTextInput = (TextView) findViewById(R.id.textinput_error); errorTextInput.measure(0, 0); int errorWidth = errorTextInput.getMeasuredWidth(); int layoutWidth = getWidth(); LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) errorTextInput.getLayoutParams(); params.setMarginStart((layoutWidth - errorWidth) / 2); errorTextInput.setLayoutParams(params); }
- Firebase / Android – Cargar usuario por UID
- "Recurso esperado de interpolador de tipo " y error "No se puede resolver símbolo" cuando genera un APK firmado