Android 带句子大写的 EditText 多行

Android EditText MultiLine with Sentence Caps

我正在尝试实例化具有多行功能以及第一个字符大写标志的 EditText,如下所示:

myEditText?.setSingleLine(false)
myEditText?.inputType =
  InputType.TYPE_CLASS_TEXT or
  InputType.TYPE_TEXT_FLAG_CAP_SENTENCES or
  InputType.TYPE_TEXT_FLAG_IME_MULTI_LINE
  myEditText?.setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION)

我也试过将标志与 plus 组合,而不是 or:

myEditText?.setSingleLine(false)
myEditText?.inputType =
  InputType.TYPE_CLASS_TEXT +
  InputType.TYPE_TEXT_FLAG_CAP_SENTENCES +
  InputType.TYPE_TEXT_FLAG_IME_MULTI_LINE
  myEditText?.setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION)

但是,出于某种原因,我只能获得多行或首字符大写,而不能同时获得两者。结果要么是 键盘没有 return 键 ,要么是 return 键只是在同一行添加空格 .

我是不是少了一面旗帜,或者使用的是破旧的旗帜?


编辑: 我忘了说我的 UI 完全由没有 XML 布局文件的代码构建。

最近,我发现当我们设置 inputType 时,它会覆盖 singleLine 设置。

  1. 设置输入类型。

  2. 设置单行=false.

--

editText.inputType = InputType.TYPE_TEXT_FLAG_MULTI_LINE or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
editText.setSingleLine(false)

我没有设置 imeOptions。这似乎运作良好。

这似乎适用于模拟器和 Google Pixel 3xl。