EditText提示文本不显示。

49

以下是我配置的EditText,但它没有显示提示文本:

<EditText
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="right"
    android:hint="The hint..."
    android:scrollHorizontally="true"
    android:singleLine="true" />

如果我设置android:gravity="left",或者删除android:scrollHorizontallyandroid:singleLine属性,则它可以工作,但这并不是理想的。有什么建议吗?


4
我可以确认,当gravity设置为centerright并且设置了singleLine时,editText不会显示提示文本。我也在寻找解决方案。 - Justin
2
我无法再编辑我的最后一条评论了,但我想提一下这是一个已知的问题:http://code.google.com/p/android/issues/detail?id=7252 - Justin
11个回答

73

android:ellipsize="end"对我很有帮助,因为这是一个奇怪的bug!(但是Android有很多这样的怪异bug)


添加了这个标签后,我可以在模拟器中看到提示,但在真实设备(即Sony Ericsson Xperia)上仍然没有成功。 - swiftBoy
"android:ellipsize" 属性对我起作用了.. 奇怪...! - Vishal

58
在Lollipop版本中,EditText 的默认文本和提示文本颜色为白色。因此,我们需要像这样进行更改:EditText
android:textColorHint="@color/grey"

2
对我有用。行为很奇怪。只有我的一个应用程序出现了这个问题,但是通过这种方式解决了。不知道背后到底发生了什么。 - March3April4

17

我希望我的单行EditText框可以滚动,但同时保持提示在右边。 我遇到了同样的问题,并通过设置gravity="right"singleLine="true"ellipsize="end"来使提示固定在那里。


7
你需要为提示文本添加文字颜色。
android:textColorHint="#000000"

这对于Android 2.3来说还不够(我在HTS Desire S上测试过)。同时应该添加android:ellipsize="end"。 - CoolMind

2
使用android:ellipsize="end"可以解决明显的平台错误。不幸的是,Xperia仍然表现不佳 :(
我找不到其他解决方案,只能:
if (android.os.Build.MANUFACTURER.matches(".*[Ss]ony.*"))
      editText.setGravity(Gravity.LEFT);
else
      editText.setGravity(Gravity.CENTER);

2
不需要使用android:scrollHorizontally属性。删除它。EditText是屏幕上的固定项目。我们只需滚动包含EditText的布局即可。这也是最好的设计。您可以使用android:ellipsize="end"替换android:scrollHorizontally

1
不对,如果你阅读文档http://developer.android.com/reference/android/R.styleable.html#TextView_scrollHorizontally,当你输入的文本无法适应字段时,android:scrollHorizontally属性允许文本在字段内滚动(当然没有滚动条)。它与布局滚动无关。 - venuko

2
尝试更改提示文本的颜色,有时提示颜色与背景颜色相同。
android:textColorHint="@color/colorBlack"

你好,欢迎光临! 看起来这个答案基本上是其他几个答案的重复。 - user10747134

1

这是我如何在EditText中添加提示的方法。

<EditText
    android:id="@+id/productQuantity"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="right|center_vertical"
    android:hint="@string/quantity"
    android:inputType="numberSigned"
    android:ellipsize="end"
    android:singleLine="true" >
</EditText>

Screenshot of what the above code should look like


1
以下对我有效:
<EditText
    android:id="@+id/UserText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_alignRight="@+id/UserPassword"
    android:layout_marginTop="85dp"
    android:ems="10"
    android:hint="@string/UserHint"
    android:inputType="textPersonName"
    android:singleLine="true"
    android:text="@string/UserName" >

    <requestFocus />
</EditText>

0

我将样式更改为"@style/Base.WidgetMaterialComponents.TextImputEditText"。对我来说,这不是重力或颜色的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接