2015-06-16 91 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'不會包含回車符。 –

相關問題