Android EditText MultiLine 与句子大写

iSo*_*fia 2 android ime android-edittext kotlin

我正在尝试实例化具有多行功能以及第一个字符大写标志的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)
Run Code Online (Sandbox Code Playgroud)

我还尝试将标志与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)
Run Code Online (Sandbox Code Playgroud)

但是,由于某种原因,我只能获得多行或首字符大写,但不能同时获得两者。结果是键盘没有返回键,或者返回键只是在同一行中添加空格

我是否缺少一面旗帜,或者可能使用了旧的旗帜?


编辑: 我忘了提及,我的 UI 纯粹是由代码构建的,没有 XML 布局文件。

Fro*_*oyo 5

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

  1. 设置输入类型。

  2. 设置单行 = false。

--

editText.inputType = InputType.TYPE_TEXT_FLAG_MULTI_LINE or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
editText.setSingleLine(false)
Run Code Online (Sandbox Code Playgroud)

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

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