J’ai essayé de mettre ma boîte EditText au mot wrap, mais je n’arrive pas à le faire.
J’ai traité des problèmes beaucoup plus complexes lors du développement d’applications Android, et cela semble être un processus simple.
Cependant, le problème persiste et j’ai une grande zone de texte qui ne me permet d’entrer du texte que sur une seule ligne, en continuant de manière transversale, en défilant horizontalement lorsque j’entre du texte.
Voici le code XML de l’object EditText de mon fichier de mise en page.
En plus de trouver la source du problème, j’ai trouvé la solution. Si android:inputType
est utilisé, alors textMultiLine doit être utilisé pour activer le support multi-ligne. En outre, l’utilisation de inputType remplace le code android:singleLine="false"
. Si vous utilisez inputType, alors, pour le répéter, textMultiLine doit être utilisé ou l’object EditText ne sera composé que d’une ligne, sans retour à la ligne.
Edit: Merci Jacob Malliet pour avoir fourni d’autres bons conseils à ce sujet. Il a suggéré de définir la propriété booléenne scrollHorizontally sur false, 'android:scrollHorizontally="false"'
.
Exemple de code XML
Ok j’ai compris, vous devez définir android:scrollHorizontally="false"
pour votre EditText
dans votre EditText
XML. Je suis sûr que cela devrait marcher.
Supposons que vous souhaitiez simplement avoir une ligne au début, puis l’étendre à 5 lignes et que vous souhaitiez avoir un maximum de 10 lignes.
En augmentant android:lines
vous pouvez définir augmentent le nombre de lignes.
Je l’ai compris. La ligne,
android:inputType="textCapSentences"
était le problème. L’ajout de cette ligne à un object EditText fera de l’object une seule ligne EditText, empêchera les mots de rentrer, ou autorisera un utilisateur à appuyer sur “Entrée” pour insérer un retour à la ligne ou un retour chariot dans le EditText.
En intégrant toute l’activité dans la vue de défilement et en plaçant le texte d’édition suivant avec une disposition linéaire, cela a fonctionné comme un charme pour moi.
Le texte de modification se ferait défiler verticalement en appuyant sur Entrée, code comme suit
vous devez append l’atsortingbut suivant à votre edittext.
android:inputType="textMultiLine"
De même, si vous définissez la hauteur ou définissez les lignes maximales de edittext sur une valeur spécifique, celle-ci défile lorsque vous tapez beaucoup de caractères.
Pour ceux qui le font de manière pragmatique, vous voudrez peut-être regarder cette question Android EditText Multiline ne fonctionne pas comme il le devrait pour vérifier que vous définissez correctement le type d’entrée. C’était mon problème
Remarque: étape 1 – créez une classe personnalisée pour editText wordWrap.
Android n’a pas cette propriété. Mais vous pouvez remplacer tous les caractères de rupture par remplacementTransformationMethod.
public class WordBreakTransformationMethod extends ReplacementTransformationMethod { private static WordBreakTransformationMethod instance; private WordBreakTransformationMethod() {} public static WordBreakTransformationMethod getInstance() { if (instance == null) { instance = new WordBreakTransformationMethod(); } return instance; } private static char[] dash = new char[] {'-', '\u2011'}; private static char[] space = new char[] {' ', '\u00A0'}; private static char[] original = new char[] {dash[0], space[0]}; private static char[] replacement = new char[] {dash[1], space[1]}; @Override protected char[] getOriginal() { return original; } @Override protected char[] getReplacement() { return replacement; } } step 2 - In Activity , write below code,
Dans Android:
myEditText.setTransformationMethod(WordBreakTransformationMethod.getInstance());
À Kotlin:
myEditText.setTransformationMethod= WordBreakTransformationMethod.getInstance
En Xml: