2015-06-16 8 views
17

Ich dachte, singleLine="true" war äquivalent zu maxLines="1", aber ich sehe, dass das folgende vorgefüllte Feld von Android Studio hat beide. Ist da ein Unterschied? Gibt es einen bekannten Bug, der beide benötigt?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" /> 

Dies ist aus der pref_general.xml Datei.

+2

Vielleicht verwandt? http://StackOverflow.com/a/17125324/2095855 –

+0

Danke. Das beantwortet zum Teil die Frage. Aber es sagt nicht, warum sie beide in dem Beispiel zeigen, das ich anbiete. –

+0

Hat es nicht etwas damit zu tun, neue Zeilen mit der Tastatur hinzufügen zu können? Ich bin mir ziemlich sicher, dass singleLine = "true" eine neue Zeile blockiert. –

Antwort

1

maxLines

In EditText, maxLines Eigenschaftssatz mit dem bestimmten Wert wie 5 dann nur fünf Zeilentext in EditText sowie die in
Tastatur auch sichtbar für die Eingabe von Enter-Taste sichtbar ist.

single

In EditText wird singleLine Eigenschaft mit wahrem Wert dann nur eine Zeile
Text ist int EditText sichtbar sowie die Enter-Taste in Tastatur nicht sichtbar für uns eingeben.

Dank

3

Von Android Website:

singleLine:

Schränkt den Text in eine horizontal einzelne Zeile Scrollen statt lässt sie auf mehrere Zeilen erstrecken, und Fortschritte konzentrieren sich stattdessen von Einfügen einer neuen Zeile, wenn Sie die Eingabetaste drücken. Der Standardwert ist false (mehrzeilig gewrappter Textmodus) für nicht bearbeitbaren Text, aber wenn Sie einen beliebigen Wert für inputType angeben, ist der Standardwert wahr (einzeiliger Eingabefeldmodus).

Muss ein boolescher Wert sein, entweder "true" oder "false".

maxLines:

Macht die Textview höchstens so viele Zeilen hoch sein. Bei Verwendung für einen editierbaren Text muss der Wert des Attributs inputType mit dem Attribut textMultiLine für das Attribut maxLines kombiniert werden.

muss ein Integer-Wert, wie zum Beispiel „100“

Bitte beachten Sie, dass single 3, da API ist veraltet und maxLines sollte stattdessen verwendet werden. Also alles, was Sie wirklich brauchen, ist

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

Ist 'singleLine' wirklich veraltet? Ich habe keine Warnungen in der visuellen Vorschau von AS gefunden. In meinem Fall ergeben 'singleLine = true' und 'maxLines = 1' unterschiedliche Ergebnisse. – akhyar

+0

singleLine scheint nicht veraltet zu sein. http://developer.android.com/reference/android/widget/TextView.html#attr_android:singleLine – Mike

+1

Es ist jetzt, aber für EditTexts sollte 'singleLine' immer noch verwendet werden, da' maxLines' keine Zeilenumbrüche umschließt. –