2015-06-16 89 views
17

我认为singleLine="true"相当于maxLines="1",但我发现Android Studio中的以下预填充字段同时包含这两个字段。有区别吗?是否有一个已知的错误导致两者都需要?android singleLine vs maxLines

<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" /> 

这是来自pref_general.xml文件。

+2

也许有关? http://stackoverflow.com/a/17125324/2095855 –

+0

谢谢。这部分回答了这个问题。但是它并没有说明他们为什么在我提供的例子中都展现出来。 –

+0

这与它能够用键盘添加新行有什么关系吗?我非常确定singleLine =“true”会阻止它制作另一行。 –

回答

1

MAXLINES

在EditText上,maxLines属性集与像5特定的值,那么 只有五个行文本是可见的EditText以及在
键盘也进入明显的Enter键。

SINGLELINE

在EditText上,singleLine属性设置与真值那么只有一条线
文本为int的EditText可见的还有输入键盘键不 可见进入到我们。

由于

3

从Android的网站:

singleLine

约束文本到单个水平滚动线代替 让它换到多行,和预付款集中代替 当你按下回车键时插入换行符。对于不可编辑的文本,默认值为 false(多行封装文本模式),但如果 指定inputType的任何值,则默认值为true(单行 输入字段模式)。

必须是布尔值,“true”或“false”。

maxLines

使TextView的至多这么多线高。当在可编辑的文本上使用 时,inputType属性的值必须与要应用maxLines属性的textMultiLine标志组合使用。

必须是一个整数值,如“100”

请注意,单线以来一直API 3弃用,MAXLINES应改为使用。所以你真正需要的是

android:maxLines = integer // 1 for single line or add lines multiple as well. 
+1

'singleLine'真的被弃用了吗?在AS的可视化预览中我没有发现任何警告。在我的例子中'singleLine = true'和'maxLines = 1'给出了不同的结果。 – akhyar

+0

singleLine似乎不推荐使用。 http://developer.android.com/reference/android/widget/TextView.html#attr_android:singleLine – Mike

+1

现在,但对于EditTexts,应该仍然使用'singleLine',因为'maxLines'不会包含回车符。 –

相关问题