1

TextInput 레이아웃과 함께 Appcompact Edittext를 사용하고 있습니다. edittext에서 오류를 설정하면 아래 그림과 같이 끝이 아닌 edittext의 가운데에 오류 아이콘이 표시됩니다. TextInput 레이아웃은 API17의 가운데에 edittext 오류 아이콘을 표시합니다.

I am getting now like this

내가 레이아웃 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

사용 정상 글고을 TextInputLayout와 함께. –

+1

'TextInputLayout'이 자신의 멋진 코드를 가지고있는 동안 왜 여전히'EditText'의 에러 메소드를 사용하고 있는지 알 수 없습니다! – Wizard

+0

@SnehaSarkar가 작동하지 않습니다. –

답변

0

TextInputLayout과 함께 EditText를 사용할 수 있습니다. 당신이 material design guidlines

따라 오류 출력을 생성 할 수 있습니다

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

이 방법 또한 텍스트 입력을 floating label를 얻을 수 app:hintEnabled="true"를 작성할 수 있습니다.

+0

작동하지 않음 게시 된 질문 전에 시도되었습니다. –

+0

오류 메시지를'TextInputLayout'으로 설정하는 방법을 설명 할 수 있습니까? – Sergey

1
  • <android.support.design.widget.TextInputEditText>...</><android.support.v7.widget.AppCompatEditText>..</>을 변경

    .

  • 문제가 지속되면 TextInputLayout에 대해서만 Error 메시지를 설정하고 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; 
} 
+0

이 작동하지 않습니다. 이 유효성 검사 메소드는 로그인 버튼을 클릭 할 때만 실행됩니다. 우리가 비워진 채로두면 오류는 잘 보이지만 오류가 나타나면 오류가 발생하지 않는 오류를 제거해야합니다. 그 때문에 나는 청자를 변경 한 텍스트를 사용했다. –

+0

로그인 버튼 이벤트 코드를 넣을 수 있습니까? – W4R10CK

+0

내가 만든 also.and이 메서드를 호출하지만 여전히 작동하지 –