我正在使用带有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>
我的代码是这样的: code for login
任何帮助都将受到高度赞赏。
答案 0 :(得分: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;
}
答案 1 :(得分: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>
这样您就可以根据material design guidlines
创建错误输出您还可以撰写app:hintEnabled="true"
以获取floating label文字输入。