【问题标题】:How to disable auto-capitalization of an EditText如何禁用 EditText 的自动大写
【发布时间】:2011-10-22 01:27:33
【问题描述】:

这将有一个非常简单的答案,但我似乎无法找到它是什么。我想禁用 EditText 的自动大写,以便默认情况下输入的第一个字母不会自动大写。我仍然希望允许大写,但前提是用户手动这样做。

我已经在我的 EditText 上尝试了 android:capitalize="none",并且我已经尝试了 android:inputType="text",但两者仍然自动将第一个字母大写。我不想使用TextWatcher,因为在软键盘上它仍然会显示按下第一个字母的 shift 键,而且我很挑剔,不希望显示。

【问题讨论】:

  • 您当前的键盘软件是否发生了自动大写?如果为真,请禁用键盘的自动大写设置。

标签: android android-edittext


【解决方案1】:

您可以尝试改用android:inputType="none"

更新:

您也可以尝试使用android:inputType="text|textEmailAddress"

【讨论】:

  • 仍然自动大写。我怀疑指定“无”只会使用用户手机上的任何默认设置。
  • Accepted answer 应该改为 android:inputType="textFilter" (如下)。我认为最近发生了一些变化,因为这是唯一对我有用的答案。
【解决方案2】:

你试过android:inputType="textFilter"吗?这将禁用所有文本过滤器,因此没有自动更正。

【讨论】:

  • 这真的很奇怪,对我来说它不会自动大写。您是只使用常规的 EditText 还是修改了它?
  • @Brian 我已经实现了 EditText 类来支持自定义类型的人脸文件。现在它自动将每个字母大写。我无法修复它。有什么建议吗??
  • 我怀疑最近发生了一些变化。我试过 type = none 和 type = text and text|textEmailAddress 并且没有工作。安卓:inputType="textFilter"?但是确实有效。
【解决方案3】:

对于后代,我认为您(或者更准确地说,无论谁在未来发现它)正在寻找的是可用于 inputType 的所有选项的表格:
https://developer.android.com/reference/android/widget/TextView.html#attr_android:inputType

在这种特定情况下,我会推荐“文本”。
Just plain old text. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_NORMAL.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    相关资源
    最近更新 更多