Comment autoriser plusieurs lignes dans la EditText
vue d'Android ?
481
Comment autoriser plusieurs lignes dans la EditText
vue d'Android ?
Par défaut, tous les EditText
widgets d'Android sont multilignes.
Voici un exemple de code:
<EditText
android:inputType="textMultiLine" <!-- Multiline input -->
android:lines="8" <!-- Total Lines prior display -->
android:minLines="6" <!-- Minimum lines -->
android:gravity="top|left" <!-- Cursor Position -->
android:maxLines="10" <!-- Maximum Lines -->
android:layout_height="wrap_content" <!-- Height determined by content -->
android:layout_width="match_parent" <!-- Fill entire width -->
android:scrollbars="vertical" <!-- Vertical Scroll Bar -->
/>
inputType
annule au moins les attributslines
etminLines
. J'ai euinputType="phone"
et les attributs de lignes n'ont eu aucun effetIndexOutOfBoundsException
dès que vous tapez quelque chose à cause deandroid:inputType="textMultiLine"
Vous pouvez trouver préférable d'utiliser:
En effet,
android:singleLine
est obsolète.la source
singleLine
partie dépréciée de leur réponse (il y a longtemps). En ce qui concerne la question elle-même, c'est la partie la plus importante de leur réponse.IndexOutOfBoundsException
dès que vous tapez quelque chose. Multiligne est désormais la valeur par défaut.Cela fonctionne pour moi, en fait, ces 2 attributs sont importants: inputType et lines . De plus, vous aurez peut-être besoin d'une barre de défilement, le code ci-dessous montre comment en faire une:
la source
Voici comment j'ai appliqué l'extrait de code ci-dessous et cela fonctionne bien. J'espère que cela aiderait quelqu'un.
À votre santé! ...Merci.
la source
Essayez ceci, ajoutez ces lignes à votre vue d'édition de texte, j'ajouterai la mienne. assurez-vous de le comprendre
et sur votre classe java, cliquez sur listner ce texte d'édition comme suit, je vais ajouter le mien, chane noms selon le vôtre.
cela fonctionne bien pour moi
la source
EditText a la propriété singleLine . Vous pouvez définir dans le XML ou en appelant setSingleLine (false); http://developer.android.com/reference/android/widget/TextView.html#setSingleLine%28%29
la source
Tous ces éléments sont agréables mais ne fonctionneront pas si vous avez votre edittext à l'intérieur de la vue de défilement de niveau supérieur :) L'exemple le plus courant est peut-être la vue "Paramètres" qui a tellement d'éléments qu'ils dépassent la zone visible. Dans ce cas, vous les mettez tous en mode défilement pour faire défiler les paramètres. Dans le cas où vous avez besoin de texte d'édition défilable multiligne dans vos paramètres, son défilement ne fonctionnera pas.
la source
la source
Pour désactiver le nombre de lignes précédemment attribuées dans le thème, utilisez l'attribut xml:
android:lines="@null"
la source
Cette ligne de code fonctionne pour moi. Ajoutez ce code que vous éditez dans votre fichier xml.
la source
Ajoutez-le simplement
android:inputType="textMultiLine"
dans un fichier XML sur le champ approprié.la source
J'ai appris cela de http://www.pcsalt.com/android/edittext-with-single-line-line-wrapping-and-done-action-in-android/ , bien que je n'aime pas le site Web moi-même. Si vous voulez multiligne MAIS que vous souhaitez conserver le bouton Entrée en tant que bouton de publication, définissez le "défilement horizontal" de la vue de liste sur false.
android:scrollHorizontally="false"
Si cela ne fonctionne pas en XML, cela fonctionne bizarrement par programmation.
listView.setHorizontallyScrolling(false);
la source
et dans l'activité pour supprimer "\ n", l'utilisateur appuie sur la ligne suivante
la source
si quelqu'un utilise AppCompatEditText, vous devez définir inputType = "textMultiLine" voici le code que vous pouvez copier
pour le fond
la source
Une autre chose intéressante à faire est d'utiliser
android:minHeight
avecandroid:layout_height="wrap_content"
. De cette façon, vous pouvez définir la taille de la modification lorsqu'elle est vide et lorsque l'utilisateur entre des éléments, il s'étire en fonction de la quantité des entrées utilisateur, y compris plusieurs lignes.la source