我这样做:
<android.support.design.widget.TextInputLayout
android:id="@+id/inputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<AutoCompleteTextView
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:maxLines="1"
android:singleLine="true"/>
</android.support.design.widget.TextInputLayout>
然后这个:
mEmailView = (AutoCompleteTextView) findViewById(R.id.email);
mEmailView.setHint("Email");
提示显示在EditText
上,但在聚焦时不在其上方。我可以在TextInputLayout
上设置提示,但我会在EditText
内的提示的同时获得提示。这是一个错误还是我做错了什么?
感谢。
答案 0 :(得分:1)
不要在子EditText上使用setHint()
,而应直接在TextInputLayout
上调用它:
TextInputLayout textInputLayout = (TextInputLayout)findViewById(R.id.inputLayout);
textInputLayout.setHint("Email");
这应该是开箱即用的,没有额外的&#34; hacks&#34;。
TextInputLayout
确实尝试从内部EditText
提示初始化其提示,但它仅在创建时执行此操作,如果它没有找到它,则它什么都不做,所以&#39 ;为什么你需要做它&#34;再试一次&#34;致电setHintEnabled()
...
我想文档应该更清楚地描述这种细微差别。
答案 1 :(得分:0)
弄清楚了,对我来说似乎是个错误。
基本上我不得不:
mEmailView = (AutoCompleteTextView) findViewById(R.id.email);
mEmailView.setHint("Email");
TextInputLayout textInputLayout= (TextInputLayout)
findViewById(R.id.inputLayout);
textInputLayout.setHintEnabled(false);
textInputLayout.setHintEnabled(true);