android singleLine vs maxLines

Kat*_*lon 25 android android-layout

我认为singleLine="true"相当于maxLines="1"但我看到Android Studio中的以下预先填充的字段都有.有区别吗?是否存在导致两者都需要的已知错误?

<EditTextPreference
   android:key="example_text"
   android:title="@string/pref_title_display_name"
   android:defaultValue="@string/pref_default_display_name"
   android:selectAllOnFocus="true"
   android:inputType="textCapWords"
   android:capitalize="words"
   android:singleLine="true"
   android:maxLines="1" />
Run Code Online (Sandbox Code Playgroud)

这是来自pref_general.xml文件.

Kal*_*mah 12

来自Android网站:

singleLine:

将文本约束为单个水平滚动线,而不是让它换行到多行,并在按下回车键时前进焦点而不是插入换行符.对于不可编辑的文本,默认值为false(多行换行文本模式),但如果为inputType指定任何值,则默认值为true(单行输入字段模式).

必须是布尔值,"true"或"false".

maxLines:

使TextView最多只有这么多行.在可编辑文本上使用时,inputType属性的值必须与要应用的maxLines属性的textMultiLine标志组合.

必须是整数值,例如"100"

请注意,由于API 3和maxLines应该被使用,因此不推荐使用singleLine.所以你真正需要的就是

android:maxLines = integer // 1 for single line or add lines multiple as well.
Run Code Online (Sandbox Code Playgroud)

  • `maxLines = 1`不会阻止用户输入换行符,但`singleLine`会阻止用户输入换行符.使用`maxLines`代替它是没有意义的. (5认同)
  • `singleLine` 真的被弃用了吗?我在 AS 的视觉预览中没有发现任何警告。在我的例子中,`singleLine=true` 和 `maxLines=1` 给出了不同的结果。 (2认同)

小智 0

最大行数

在 EditText 中,maxLines属性设置为特定值(如 5),则 EditText 中仅可见五行文本,并且
键盘中的 Enter 键对于 Entering 也可见。

单线

在 EditText 中,singleLine属性设置为 true 值,则只有一行
文本是 int EditText 可见的,并且键盘中的 Enter 键对我们的输入不可见。

谢谢