1

我正在使用带有 TextInput 布局的 Appcompact Edittext。当我在edittext上设置错误时,它会在edittext的中心显示错误图标,而不是像下图那样结束。

我现在是这样的

当我从布局 xml 中删除 Textinput 布局时,它会在适当的位置显示图标。

编辑 我的布局 xml,如下所示。

<ScrollView
android:layout_width="fill_parent"
android:fitsSystemWindows="true"
android:layout_height="fill_parent"
android:background="@color/white"
xmlns:android="http://schemas.android.com/apk/res/android"
>


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:focusable="false"
    android:paddingLeft="@dimen/_10sdp"
    android:paddingRight="@dimen/_10sdp"
    android:layout_gravity="center_vertical"
    android:id="@+id/activity_login_parent_layout"
    android:orientation="vertical">

    <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/circleView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:focusableInTouchMode="false"
        android:focusable="false"
        android:layout_marginTop="@dimen/_30sdp"
        android:src="@drawable/logo" />

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >

        <android.support.v7.widget.AppCompatEditText
            android:id="@+id/activity_user_login_username_et"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:maxLines="1"
            android:minLines="1"
            android:singleLine="true"
            android:inputType="text"
            android:focusableInTouchMode="true"
            android:layout_marginTop="@dimen/_30sdp"
            android:hint="Username" />
    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
      >

        <android.support.v7.widget.AppCompatEditText
            android:id="@+id/activity_user_login_password_et"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/_10sdp"
            android:maxLines="1"
            android:minLines="1"
            android:hint="Password"
            android:singleLine="true"
            android:focusableInTouchMode="true"
            android:imeOptions="actionDone"
            android:inputType="textPassword" />
    </android.support.design.widget.TextInputLayout>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/_5sdp"
        android:gravity="right"
        android:visibility="gone"
        android:id="@+id/activity_user_login_forgot_pwd_tv"
        android:paddingRight="@dimen/_10sdp"
        android:text="Forgot Password?" />
    <Button
        android:id="@+id/activity_user_login_btn"
        style="@style/button"
        android:layout_marginLeft="@dimen/_20sdp"
        android:layout_marginRight="@dimen/_20sdp"
        android:layout_marginTop="@dimen/_20sdp"
        android:layout_marginBottom="@dimen/_10sdp"
        android:layout_width="fill_parent"
        android:textAllCaps="false"
        android:layout_height="wrap_content"
        android:text="Login" />
    <Button
        android:layout_width="wrap_content"
        android:text="Change URL"
        android:id="@+id/activity_user_login_change_url_btn"
        style="@style/Base.Widget.AppCompat.Button.Borderless"
        android:paddingLeft="@dimen/_50sdp"
        android:layout_marginRight="@dimen/_20sdp"
        android:drawablePadding="@dimen/_5sdp"
        android:drawableLeft="@drawable/change_url"
        android:layout_gravity="right"
        android:textColor="@color/grey"
        android:textAllCaps="false"
        android:gravity="right|center_vertical"
        android:layout_height="wrap_content" />



    </LinearLayout>
</ScrollView>

我的代码是这样 的:登录代码

任何帮助将不胜感激。

4

2 回答 2

1
  • 用. <android.support.v7.widget.AppCompatEditText>..</>_<android.support.design.widget.TextInputEditText>...</>

  • 如果问题仍然存在,请尝试Error仅为对象设置您的消息TextInputLayout并将其从EditText对象中删除。

设置错误InputTextLayout,用你的值改变它:

private boolean usernameValidation(String your_username){
    if (TextUtils.isEmpty(your_username)){
        your_username_inputTextLayout.setError("Enter Username!");
        return false;
    }else {
        your_username_inputTextLayout.setErrorEnabled(false);
    }
    return true;
}
于 2017-01-16T10:33:27.613 回答
0

您可以将 EditText 与 TextInputLayout 一起使用。

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:animateLayoutChanges="true"
    app:hintEnabled="false">

        <android.support.v7.widget.AppCompatEditText
            android:id="@+id/edit_input"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/hint_text"/>

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

这样您就可以根据材料设计指南创建错误输出

您还可以编写app:hintEnabled="true"以获取文本输入的浮动标签

于 2017-01-16T09:34:16.333 回答