236 votes

Android : Alignement vertical pour un EditText (zone de texte) multi-lignes

Je veux avoir 5 lignes pour la hauteur de la zone de texte. J'utilise le code suivant.

<EditText
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:singleLine="false"
    android:lines="5"
    android:layout_marginLeft="10dip"
    android:layout_marginRight="10dip" />

La zone de texte semble correcte, mais le problème est que le curseur clignote au milieu du champ de texte. Je veux qu'il clignote à la première ligne, au premier caractère du champ de texte.

15 votes

essayez d'enlever votre "centre" de gravité, c'est peut-être le problème.

379voto

CommonsWare Points 402670

Utilisez android:gravity="top"

100voto

Nandagopal T Points 1115

Cette réponse est similaire à celle de CommonsWare, mais avec une petite modification : android:gravity="top|start" . Exemple de code complet :

<EditText
    android:id="@+id/EditText02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:lines="5"
    android:gravity="top|start"
    android:inputType="textMultiLine"
    android:scrollHorizontally="false" 
/>

8 votes

Ne pas utiliser top|left à moins que vous ne sachiez que vous pouvez contrôler toutes les langues dans votre application, il y a beaucoup de langues de droite à gauche ( fr.wikipedia.org/wiki/Droite à gauche ) Veillez à ce que le site soit facile à localiser

2 votes

@MariusBudin Vraisemblablement, top|start serait l'alternative correcte ?

19voto

Denny Sharma Points 369

Vous pouvez utiliser cet Edittext.... Cela vous aidera.

<EditText
android:id="@+id/EditText02"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:lines="5"
android:gravity="top|left"
android:inputType="textMultiLine" />

9voto

Samir Mangroliya Points 21263

Utilisez ça :

android:gravity="top"

ou

android:gravity="top|left"

6voto

Jone Points 552
<EditText android:id="@+id/EditText02" android:layout_width="120dp"
    android:layout_height="wrap_content" android:lines="5" android:layout_centerInParent="true"
    android:gravity="top|left" android:inputType="textMultiLine"
    android:scrollHorizontally="false" android:minWidth="10.0dip"
    android:maxWidth="180dip" />

cela fonctionnera

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X