【问题标题】:TextInputLayout and EditText hint visible [duplicate]TextInputLayout 和 EditText 提示可见 [重复]
【发布时间】:2017-01-23 16:39:41
【问题描述】:

更新我的 Android 支持库后,我遇到了一个非常奇怪的问题,尤其是 'com.android.support:design:25.1.0'。请看以下截图:

______

请注意,相同的代码适用于电子邮件、国家和电话字段,但对于姓名字段,提示“姓名”也在用户姓名后面可见。

以下是代码:

电子邮件代码:

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <com.touchd.app.ui.views.FontEditText
        android:id="@+id/textEmail"
        style="@style/loginEditTextView"
        android:layout_alignParentBottom="true"
        android:gravity="top|center_horizontal"
        android:hint="@string/email_text_view"
        android:inputType="textEmailAddress" />

</android.support.design.widget.TextInputLayout>

以编程方式:

mEmail = (EditText) findViewById(R.id.textEmail);
mEmail.setText(userProfile.email);

名称代码:

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <com.touchd.app.ui.views.FontEditText
        android:id="@+id/textName"
        style="@style/loginEditTextView"
        android:hint="@string/name"
        android:inputType="textPersonName|textCapWords"
        android:text="@string/no_name_specified" />
</android.support.design.widget.TextInputLayout>

以编程方式:

mName = (EditText) findViewById(R.id.textName);
if (userProfile.name != null && userProfile.name.length > 0) {
    mName.setText(userProfile.name);
}

风格

<style name="loginEditTextView" parent="android:Widget.EditText">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_centerHorizontal">true</item>
    <item name="android:textColor">@color/primary_text_color</item>
    <item name="android:textSize">19sp</item>
    <item name="android:gravity">center</item>
    <item name="android:paddingBottom">10dp</item>
</style>

你可以看到代码是相似的。有谁可以帮我离开这里吗?这是 Android 设计库中的错误还是我在做一些愚蠢的事情?

【问题讨论】:

  • 你能发布样式和 FontEditText 实现吗?
  • FontEditText 只是设置字体,没有别的。
  • 我添加了样式
  • 对于FontEditText,问题是它扩展了什么
  • 也许我明白了。对我来说,问题出在重力属性上:在电子邮件字段中,您使用“top|center_horizo​​ntal”覆盖样式,但在名称字段中,您没有,所以它仍然是“中心”。

标签: android android-design-library android-textinputlayout hints


【解决方案1】:

这是支持设计库 v25.1.0 中的回归,如 in a previous answer 所述。它可能会在未来的版本中得到修复。暂时回滚到 v25.0.1。

https://code.google.com/p/android/issues/detail?id=230171

EDIT 显然已从 25.2.0 开始修复。当我有机会检查时会确认。

【讨论】:

  • 好的,但为什么它适用于电子邮件、国家和电话?
  • 是的,它已经解决了这个问题。愚蠢的安卓
  • @BugsHappen 当用户添加文本时它工作正常。此错误仅发生在预填充的 EditText 字段中。
  • 请不要对多个问题发布相同的答案。如果问题已在此处得到回答,请将其标记为重复问题。
  • 此问题已在支持库版本 25.2.0 中得到修复。
猜你喜欢
  • 2016-01-25
  • 2016-03-30
  • 1970-01-01
  • 2015-08-27
  • 2018-05-04
  • 2015-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多