自定义错误显示TextInputLayout

Custom Error display TextInputLayout

我在编辑文本中有错误处理的具体实现。有什么办法可以实现如下所示的效果。

我设法取得了几乎相似的结果。只剩下一部分是验证器。

如有任何帮助,我们将不胜感激

编辑 1: 附上帮助代码。

 <android.support.design.widget.TextInputLayout
        style="@style/FrameTextLayout"
        android:layout_width="match_parent"
        app:theme="@style/GreyHighlight">

        <android.support.design.widget.TextInputEditText
            android:id="@+id/fragment_sign_up_one.text_email"
            style="@style/FrameEditText"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:hint="@string/email"
            android:inputType="textEmailAddress" />

 </android.support.design.widget.TextInputLayout>

values\styles 中的值。xml

<style name="GreyHighlight" parent="AppThemeNoAction">
    <item name="colorControlNormal">@color/colorHeather</item>
    <item name="colorControlActivated">@color/colorHeather</item>
    <item name="textColorError">@color/colorHeather</item>
</style>

<style name="FrameTextLayout">
    <item name="android:background">@drawable/border_background</item>
    <item name="android:paddingTop">8dp</item>
    <item name="android:layout_height">53dp</item>
    <item name="android:layout_marginTop">16dp</item>
</style>

<style name="FrameEditText">
    <item name="android:background">@android:color/transparent</item>
    <item name="android:maxLines">1</item>
    <item name="android:textSize">16.7sp</item>
    <item name="android:textColor">@color/colorDarkIndigo</item>
    <item name="android:paddingBottom">8dp</item>
    <item name="android:paddingLeft">16dp</item>
    <item name="android:paddingRight">16dp</item>
    <item name="android:paddingTop">8dp</item>
</style>

另外在旁注中,我们如何在 TextInputLayout 中居中提示。附示例。

目前,

编辑 2: 通过在 TextInputLayout.

上使用 app:hintEnabled="false",在不处于焦点时通过禁用提示来管理中心提示

所以我最终创建了一个自定义视图来满足我的需要。 如果有人感兴趣,我为它创建了一个库。

CustomFormViews