1

私は、TextInputレイアウトでAppcompact Edittextを使用しています。 edittextでエラーを設定すると、下の図のように終了するのではなく、edittextの中央にエラーアイコンが表示されます。TextInputレイアウトは、API17の中央にedittextエラーアイコンを表示します。

I am getting now like this

私はレイアウトXMLからのTextInputレイアウトを削除すると、それは適切な場所にアイコンが表示されます。

EDIT 私のレイアウト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で通常のEditTextを使用しています。 –

+1

なぜ 'EditText'のエラーメソッドを使用しているのですか?' TextInputLayout'には独自のものとクールなものがあります。 – Wizard

+0

@SnehaSarkar not working私は試してみました –

答えて

0

TextInputLayoutでEditTextを使用できます。

<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"を書くことができますmaterial design guidlines

に従ってエラー出力を作成することができます。

+0

Not working私は掲示された質問の前に試しました。 –

+0

エラーメッセージを 'TextInputLayout'に設定する方法を説明できますか? – Sergey

1
  • <android.support.v7.widget.AppCompatEditText>..</><android.support.design.widget.TextInputEditText>...</>に変更してください。

  • 問題が解決しない場合は、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

私も作成しました。このメソッドを呼び出してもまだ動作していません –

関連する問題