TextInputLayout和EditText双提示问题

kar*_*sas 27 android android-appcompat android-edittext android-textinputlayout

我想在EditText(在TextInputLayout中)中使用java设置提示.

用于设置提示的代码:

aET = (EditText) findViewById(R.id.aET); aET.setHint("h?");

但即使关注edittext,Hint也会显示两次(也在edittext内).

如果有人面对并找到一些解决方法,请告诉我

当editText聚焦时......

第二

当editText没有聚焦时..

第一

编辑[2015年7月10日]:

<android.support.design.widget.TextInputLayout
     android:id="@+id/aTIL"
     android:layout_width="match_parent"
     android:layout_height="wrap_content">
     <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/aET" />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

nei*_*its 39

出现此问题的原因是xml中的提示传递给TextInputLayout,因此它可以显示为浮动提示.但是当你以编程方式设置它时,提示被设置为EditText,然后产生两个提示(一个来自xml,它是一个浮动提示,一个是以编程方式设置的,是一个正常的EditText提示).如果要更改浮动提示,则必须在TextInputLayout上设置提示.

您的代码将如下所示:

aTIL = (TextInputLayout) findViewById(R.id.aTIL);
aTIL.setHint("h?");
Run Code Online (Sandbox Code Playgroud)


acs*_*eam 12

我找到了解决方案!

在EditText中添加

android:textColorHint="@android:color/transparent"
Run Code Online (Sandbox Code Playgroud)

并在代码中设置EditText中的提示

aET.setHint("h?");
Run Code Online (Sandbox Code Playgroud)

您的editText中的提示将被隐藏,并显示TextInputLayout中的提示.

编辑:

其他解决方案(最好的)

使用新版本的android:design更新Graddle

compile 'com.android.support:design:22.2.1'
Run Code Online (Sandbox Code Playgroud)


axd*_*axd 12

我也有这个问题.

当我需要更新提示时,我(错误地)同时对其EditText进行了操作TextInputLayout,这导致了模糊.

解决方案是不打电话EditText.setHint(),只是打电话TextInputLayout.setHint()