1

Ich benutze Appcompact Edittext mit TextInput-Layout. Wenn ich Fehler auf editedtext setze, zeigt es Fehlersymbol in der Mitte von editedtext anstelle von Ende wie unten Bild an.TextInput-Layout show edittext Fehlersymbol in der Mitte in API17

I am getting now like this

Wenn ich Texteingabe-Layout von Layout XML entfernen, dann zeigen Sie es Symbol an richtigen Platz.

BEARBEITEN Meine Layout-XML wie unten.

<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> 

Mein Code wie folgt aus: code for login

Jede Hilfe sehr geschätzt wird.

+0

Verwendung normaler EditText mit TextInputLayout. –

+1

Ich kann nicht herausfinden, warum Sie immer noch 'EditText's Fehlermethoden verwenden, während' TextInputLayout' eine eigene und coole Methode hat! – Wizard

+0

@SnehaSarkar nicht funktioniert, ich wurde versucht –

Antwort

0

Sie können EditText mit TextInputLayout verwenden.

<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> 

diese Weise können Sie Fehlerausgabe nach material design guidlines

Sie können auch app:hintEnabled="true" schreiben erstellen floating label für die Texteingabe zu erhalten.

+0

Nicht funktionierend Ich wurde vor der geposteten Frage versucht. –

+0

Können Sie erklären, wie Sie eine Fehlermeldung in 'TextInputLayout' gesetzt haben? – Sergey

1
  • Ihre <android.support.v7.widget.AppCompatEditText>..</> mit <android.support.design.widget.TextInputEditText>...</> ändern.

  • Wenn das Problem weiterhin besteht, versuchen Sie Ihre Error Nachricht nur für TextInputLayout zu setzen und es von EditText Objekt zu entfernen.

Fehler Einstellung auf InputTextLayout, ändern Sie diese mit Ihren Werten:

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; 
} 
+0

funktioniert nicht. Diese Validierungsmethode wird nur ausgelöst, wenn Sie auf den Login-Button klicken. wenn wir leeres Feld verlassen, dann zeigt es Fehler, der in Ordnung ist, aber nach dem gezeigten Fehler, wenn ich irgendeinen Text darin schreibe, sollte es Fehler entfernen, der nicht geschieht. Dafür habe ich einen Text verwendet, der den Listener verändert hat. –

+0

können Sie den Code der Anmeldung Schaltfläche Ereignis? – W4R10CK

+0

Ich legte auf create auch. Und rufen Sie diese Methode, aber immer noch nicht funktioniert –

Verwandte Themen